Finn Fix wrote:
>
> Hej !
>
> Jeg søger et eksempel på trådet socket prgrammering. Jeg kan godt finde ud
> af at køre socket kommunikation på localhost, hvor man både har klient og
> server på samme maskine. Nu vil jeg så gerne køre denne kommunikation i en
> tråd, så der kan blive mulighed for at have flere klienter kørende
> samtidigt. Er der nogen der kan hjælpe ?
Her er et eksempel på en multithreaded server, som blot returnerer alt
hvad du skriver til den.
Start den f.eks. på port 5000 på denne måde:
java EchoServer 5000
import java.net.*;
import java.io.*;
public class EchoServer extends Thread
{
Socket s = null;
public EchoServer(Socket s)
{
this.s = s;
}
public void run()
{
try
{
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
int bytein = -1;
while((bytein = in.read()) != -1)
{
out.write(bytein);
out.flush();
}
out.close();
System.out.println("Connection closed from "+
s.getInetAddress().getHostAddress());
}
catch(IOException ioe)
{
System.out.println("IOException:\n"+ioe);
}
}
public static void main(String[] args)
{
int port = Integer.parseInt(args[0]);
try
{
ServerSocket ss = new ServerSocket(port);
while(true)
{
System.out.println("Listening on port "+port);
Socket s = ss.accept();
System.out.println("Incoming connection from "+
s.getInetAddress().getHostAddress());
EchoServer es = new EchoServer(s);
es.start();
}
}
catch(IOException ioe)
{
System.out.println("Error listening on port "+
port+".\n"+ioe);
}
}
}
--
CAPUT A/S Morten Jensen Phone +45 70 12 24 42
Nygade 6 Senior Developer Fax +45 70 11 24 42
DK-1164 Kbh K jensen@caput.com
http://www.caput.com