`
wangtong40
  • 浏览: 248986 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java的多线程Socket通信

阅读更多

Socket的多线程通信

java 代码
  1. package  com.wangtong.network;   
  2.   
  3. import  java.io.BufferedReader;   
  4. import  java.io.IOException;   
  5. import  java.io.InputStream;   
  6. import  java.io.InputStreamReader;   
  7. import  java.io.OutputStream;   
  8. import  java.io.PrintWriter;   
  9. import  java.net.ServerSocket;   
  10. import  java.net.Socket;   
  11. import  java.util.Scanner;   
  12.   
  13. public   class  MultipleServerSocket {   
  14.   
  15.      public   static   void  main(String[] args) {   
  16.          try  {   
  17.              int  i =  1 ;   
  18.             ServerSocket serverSocket =  new  ServerSocket( 8189 );   
  19.              while  ( true ) {   
  20.                 Socket incoming = serverSocket.accept();   
  21.                 System.out.println( "Thread...."  + i);  // count spawn   
  22.                 Runnable r =  new  ThreadedEchoHandler(incoming, i);   
  23.                 Thread t =  new  Thread(r);   
  24.                 t.start();   
  25.                 i++;   
  26.   
  27.             }   
  28.         }  catch  (IOException e) {   
  29.             e.printStackTrace();   
  30.         }   
  31.     }   
  32. }   
  33.   
  34. class  ThreadedEchoHandler  implements  Runnable {   
  35.   
  36.      private  Socket socket;   
  37.   
  38.      private   int  counter;   
  39.   
  40.      public  ThreadedEchoHandler(Socket i,  int  c) {   
  41.         socket = i;   
  42.         counter = c;   
  43.     }   
  44.   
  45.      public   void  run() {   
  46.          try  {   
  47.              try  {   
  48.                 BufferedReader in =  new  BufferedReader( new  InputStreamReader(   
  49.                         socket.getInputStream()));   
  50.                 PrintWriter out =  new  PrintWriter(socket.getOutputStream());   
  51.                  while  ( true ) {   
  52.                     String str = in.readLine();   
  53.                     System.out.println( "server:"  + str);   
  54.                     out.println( "client receive"  + str);   
  55.                     out.flush();   
  56.                      if  (str.equals( "exit" ))   
  57.                          break ;   
  58.                 }   
  59.             }  finally  {   
  60.                 socket.close();   
  61.             }   
  62.         }  catch  (IOException e) {   
  63.             e.printStackTrace();   
  64.         }   
  65.     }   
  66.   
  67. }   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics