22. óra
(Erben Péter, 2008. 03. 17.)
TCP/IP 1.rész, összeköttetés alapú szerver
Iteratív szerver
import java.net.*;
import java.io.*;
public class TCPszerver {
public static void main(String[] args){
if(args.length == 1){
try{
boolean szolgalatban = true;
int port = Integer.parseInt(args[0]);
ServerSocket serversock = new ServerSocket(port,10);
while(szolgalatban){
Socket kliensem = serversock.accept();
System.out.println("új kliens:"+kliensem.getInetAddress().toString());
InputStream is = kliensem.getInputStream();
BufferedReader kis = new BufferedReader(new InputStreamReader(is));
OutputStream os = kliensem.getOutputStream();
PrintWriter kos = new PrintWriter(os);
kos.print("You are now connected to prog.berzsenyi.hu:12345\r\n");
kos.flush();
String be_sor = kis.readLine();
System.out.println(kliensem.getInetAddress().toString()+": "+be_sor);
kos.println(be_sor+be_sor);
kos.flush();
kis.close();
kos.close();
kliensem.close();
if(be_sor.equals("vege")){
}
}
serversock.close();
}
catch (SocketException se){
System.out.println("Socket hiba:"+se.getMessage());
}
catch (IOException ie){
System.out.println("IO hiba");
}
} else {
System.out.println("Hívása: java TCPszerver port");
}
}
}
Többszállú szerver
import java.net.*;
import java.io.*;
public class TCPPszerver {
public static void main(String[] args){
if(args.length == 1){
try{
boolean szolgalatban = true;
int port = Integer.parseInt(args[0]);
ServerSocket serversock = new ServerSocket(port,10);
while(szolgalatban){
Socket kliensem = serversock.accept();
System.out.println("új kliens:"+kliensem.getInetAddress().toString());
new Kiszolgalo(kliensem).start();
}
serversock.close();
}
catch (SocketException se){
System.out.println("Socket hiba:"+se.getMessage());
}
catch (IOException ie){
System.out.println("IO hiba");
}
} else {
System.out.println("Hívása: java TCPszerver port");
}
}
}
import java.net.*;
import java.io.*;
public class Kiszolgalo extends Thread {
private Socket kliensem;
public boolean mehet=true;
public Kiszolgalo(Socket s){
super("Kiszolgalo");
kliensem = s;
}
public void run(){
try{
InputStream is = kliensem.getInputStream();
BufferedReader kis = new BufferedReader(new InputStreamReader(is));
OutputStream os = kliensem.getOutputStream();
PrintWriter kos = new PrintWriter(os);
String be_sor;
while(mehet){
be_sor = kis.readLine();
System.out.println(kliensem.getInetAddress().toString()+": "+be_sor);
kos.println(be_sor+be_sor);
kos.flush();
if(be_sor.equals("exit")){
mehet = false;
}
}
kis.close();
kos.close();
kliensem.close();
}
catch(SocketException se){
}
catch(IOException ie){
}
}
}