Java的单线程Socket通信
packagecom.wangtong.network; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStreamReader; importjava.io.PrintWriter; importjava.net.ServerSocket; importjava.net.Socket; public classServerSocket { public static voidmain(String[] args) { try{ createServerSocket(); }catch(IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static voidcreateServerSocket()throwsIOException { ServerSocket serverSocket =newServerSocket( 8189 ); Socket socket = serverSocket.accept(); // wait for client connection while( true ) { BufferedReader in =newBufferedReader( newInputStreamReader(socket .getInputStream())); PrintWriter out =newPrintWriter(socket.getOutputStream()); while( true ) { String str = in.readLine(); System.out.println( "server:"+ str); out.println( "client receive"+ str); out.flush(); if(str.equals( "exit" )) break ; } socket.close(); } } } packagecom.wangtong.network; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.OutputStream; importjava.io.PrintWriter; importjava.net.Socket; importjava.net.UnknownHostException; importjava.util.Scanner; public classClientSocket { private static finalString URL ="localhost" ; private static final intPORT =8189 ; /** * create client socket * * @throws IOException * @throws UnknownHostException * */ private static voidcreateClientSocket()throwsUnknownHostException, IOException { Socket clientSocket =newSocket(URL, PORT); BufferedReader in =newBufferedReader( newInputStreamReader( clientSocket.getInputStream())); PrintWriter out =newPrintWriter(clientSocket.getOutputStream()); BufferedReader wt =newBufferedReader( newInputStreamReader(System.in)); while( true ) { String str = wt.readLine(); out.println( "client send:"+ str); out.flush(); if(str.equals( "end" )) { break ; } System.out.println(in.readLine()); } clientSocket.close(); } public static voidmain(String[] args) { try{ createClientSocket(); }catch(UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 转:http://wangtong40.iteye.com/blog/50628
页:
[1]