Java examples for Network:TCP
Using Thread to handle Socket Server
import java.io.*; import java.net.*; import java.lang.*; public class Server { public static void main(String[] args) throws IOException { final int port = 444; System.out.println("Server waiting for connection on port "+port); ServerSocket ss = new ServerSocket(port); Socket clientSocket = ss.accept(); System.out.println("Recieved connection from "+clientSocket.getInetAddress()+" on port "+clientSocket.getPort()); //create two threads to send and recieve from client RecieveFromClientThread recieve = new RecieveFromClientThread(clientSocket); Thread thread = new Thread(recieve); thread.start();/* w w w .j ava2s .c o m*/ SendToClientThread send = new SendToClientThread(clientSocket); Thread thread2 = new Thread(send); thread2.start(); } } class RecieveFromClientThread implements Runnable { Socket clientSocket=null; BufferedReader brBufferedReader = null; public RecieveFromClientThread(Socket clientSocket) { this.clientSocket = clientSocket; }//end constructor public void run() { try{ brBufferedReader = new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream())); String messageString; while(true){ while((messageString = brBufferedReader.readLine())!= null){//assign message from client to messageString if(messageString.equals("EXIT")) { break;//break to close socket if EXIT } System.out.println("From Client: " + messageString);//print the message from client System.out.println("Please enter something to send back to client.."); } this.clientSocket.close(); System.exit(0); } } catch(Exception ex){System.out.println(ex.getMessage());} } }//end class RecieveFromClientThread class SendToClientThread implements Runnable { PrintWriter pwPrintWriter; Socket clientSock = null; public SendToClientThread(Socket clientSock) { this.clientSock = clientSock; } public void run() { try{ pwPrintWriter =new PrintWriter(new OutputStreamWriter(this.clientSock.getOutputStream()));//get outputstream while(true) { String msgToClientString = null; BufferedReader input = new BufferedReader(new InputStreamReader(System.in));//get userinput msgToClientString = input.readLine();//get message to send to client pwPrintWriter.println(msgToClientString);//send message to client with PrintWriter pwPrintWriter.flush();//flush the PrintWriter System.out.println("Please enter something to send back to client.."); }//end while } catch(Exception ex) { System.out.println(ex.getMessage()); } }//end run }