JAVA涂鴉
          關(guān)于JAVA的點(diǎn)點(diǎn)滴滴
          posts - 50,  comments - 689,  trackbacks - 0
              這是一個(gè)比較簡(jiǎn)單的例子來(lái)說(shuō)明socket編程,服務(wù)器端使用了多線程來(lái)監(jiān)聽(tīng)客戶端。
             
              服務(wù)器端的代碼:
              package SocketTest;

              import java.io.*;
              import java.net.*;
              import java.util.*;

              class SocketServer{
                  public SocketServer(){
                      Socket incoming;
                      ServerSocket so;
                      try{
                          so= new ServerSocket(8001);
                          System.out.println("等待客戶端連接。");
                      
                          while(true){
                              try{
                                  incoming = so.accept( );
                                    System.out.println("已連接客戶端。");
                                    GetInfo gi=new GetInfo(incoming);//調(diào)用線程
                               } catch (IOException e){
                                  e.printStackTrace();
                               }
                          }
                      }catch (IOException e){
                           e.printStackTrace();
                      }
                  }
             
                  public static void main(String[] args){
                      new SocketServer();
                  }
             
                  private static class GetInfo implements Runnable{   //線程類(lèi)
                      private Socket incoming;
                      private String s=null;
                      private BufferedReader b;
                      Thread t;
                 
                      public GetInfo(Socket incoming){
                          try{
                              this.incoming=incoming;
                              b=new BufferedReader(new InputStreamReader(incoming.getInputStream()));
                         
                              t=new Thread(this);
                              t.start();
                          }catch(IOException e){
                              e.printStackTrace();
                          }   
                      }
                 
                      public void run(){
                          try{
                              while (true){
                                  s=b.readLine();
                                  System.out.println(s);
                                  if(s.equals("end")){
                                      break;
                                  }
                              } 
                          }catch(IOException e){
                              e.printStackTrace();
                          }
                      }
                  }
                
               }


              客戶端的代碼:
              package SocketTest;

              import java.io.*;
              import java.net.*;
              import java.util.*;

              public class SocketClient{
             
                 public static void main(String[] args){
                
                         try{
                            Socket so = new Socket("localhost", 8001);
                            System.out.println("連接服務(wù)器。");
                       
                            BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
                             
                            OutputStream outStream = so.getOutputStream();
                            PrintWriter out = new PrintWriter(outStream);
                 
                            String s=null;
                            while (true){
                              s=b.readLine();
                              out.println("Client:"+s);
                              out.flush();
                              if(s.equals("end")){
                                   break;
                              }    
                            }
                      }catch (IOException e){
                        e.printStackTrace();
                      }
                 }
              }



          posted on 2005-10-10 14:04 千山鳥(niǎo)飛絕 閱讀(2701) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): J2SE

          FeedBack:
          # re: 多線程實(shí)現(xiàn)對(duì)多個(gè)客戶端的監(jiān)聽(tīng).[未登錄](méi)
          2010-03-02 23:07 | 清風(fēng)
          兄弟 我也成功實(shí)現(xiàn)了 謝了  回復(fù)  更多評(píng)論
            
          # re: 多線程實(shí)現(xiàn)對(duì)多個(gè)客戶端的監(jiān)聽(tīng).[未登錄](méi)
          2014-08-23 17:59 | 哼哼
          @清風(fēng)
          抄誰(shuí)不會(huì)
            回復(fù)  更多評(píng)論
            
          正在閱讀:



          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 776429
          • 排名 - 56

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 阿拉善盟| 达孜县| 马尔康县| 莫力| 巧家县| 博罗县| 平阳县| 寿宁县| 赤壁市| 延川县| 裕民县| 屏东市| 维西| 齐齐哈尔市| 澄城县| 宁强县| 临洮县| 黄大仙区| 司法| 昌吉市| 应用必备| 定州市| 城固县| 象州县| 云和县| 逊克县| 高邮市| 故城县| 科尔| 双桥区| 云霄县| 文化| 息烽县| 安新县| 汉寿县| 小金县| 客服| 巴里| 湘阴县| 乐业县| 永宁县|