Mal ein Beispiel:
Server:
[Java]
package server;
import java.net.*;
import java.io.*;
import common.*;
public class MainThread extends Thread
{
private int port = 0;
private Protokol protokol = new SimpleProtokol();
ServerSocket sock = null;
public MainThread(int port)
{
this.port = port;
}
public void run()
{
protokol.write("MainThread:run:gestartet");
try
{
sock = new ServerSocket(port);
while (Global.runFlag)
{
try
{
Socket con = sock.accept();
ArbeitsThread D = new ArbeitsThread(con);
D.setDaemon(true);
D.start();
}
catch (InterruptedIOException ie)
{
//Mache nichts
}
}
sock.close();
}
catch (Exception e)
{
protokol.write("MainThread:run:Exception:");
protokol.write(e.toString());
}
Global.runFlag = false;
protokol.write("MainThread:run:beendet");
}
}
[/Java]
[Java]
package server;
import java.io.*;
import java.net.*;
import common.*;
public class ArbeitsThread extends Thread
{
private static int number = 0;
public int myNumber = 0;
private Protokol protokol = new SimpleProtokol();
public Socket con = null;
public ArbeitsThread(Socket con)
{
this.con = con;
InetAddress ia = con.getInetAddress();
String client = ia.getHostAddress();
myNumber = getNumber();
protokol.write("ArbeitsThread(" + myNumber + "): Created from " + client);
}
public void run()
{
protokol.write("ArbeitsThread(" + myNumber + "):run:gestartet");
InputStream in = null;
OutputStream out = null;
ObjectInputStream oi = null;
ObjectOutputStream oo = null;
try
{
in = con.getInputStream();
oi = new ObjectInputStream(in);
Object obj = oi.readObject();
Verarbeitung V = new Verarbeitung(obj,this);
Object obk = V.start();
out = con.getOutputStream();
oo = new ObjectOutputStream(out);
oo.writeObject(obk);
oo.flush();
}
catch (Exception e)
{
protokol.write("ArbeitsThread(" + myNumber + "):Exception:" + e.toString());
}
protokol.write("ArbeitsThread(" + myNumber + "):run:beendet");
}
public synchronized int getNumber()
{
number++;
return number;
}
}
[/Java]
Client
[Java]
package client;
import java.net.*;
import java.io.*;
import common.*;
public class ServerRequest
{
private static Protokol protokol = new SimpleProtokol();
private static Socket con = null;
private static OutputStream ou = null;
private static ObjectOutputStream oo = null;
private static InputStream in = null;
private static ObjectInputStream oi = null;
public static Object get(Object send)
{
Object received = null;
try
{
con = new Socket(Parameter.host,Parameter.port);
ou = con.getOutputStream();
oo = new ObjectOutputStream(ou);
oo.writeObject(send);
oo.flush();
in = con.getInputStream();
oi = new ObjectInputStream(in);
received = oi.readObject();
}
catch (Exception e)
{
protokol.write("ServerRequest:Exception:" + e.toString());
System.exit(12);
}
return received;
}
}
[/Java]