JAVA涂鴉
          關(guān)于JAVA的點(diǎn)點(diǎn)滴滴
          posts - 50,  comments - 689,  trackbacks - 0
              這是一個(gè)比較簡(jiǎn)單的例子來說明socket編程,服務(wù)器端使用了多線程來監(jiān)聽客戶端。
             
              服務(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{   //線程類
                      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 千山鳥飛絕 閱讀(2700) 評(píng)論(2)  編輯  收藏 所屬分類: J2SE

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



          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 776175
          • 排名 - 56

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 阳曲县| 博兴县| 巴塘县| 武强县| 工布江达县| 湖南省| 桐梓县| 镇坪县| 灯塔市| 紫阳县| 海晏县| 密云县| 漾濞| 丹阳市| 崇仁县| 遂宁市| 福清市| 宁德市| 寻乌县| 烟台市| 稷山县| 仁布县| 天峻县| 清丰县| 桦南县| 平泉县| 五家渠市| 阿图什市| 彭山县| 鸡西市| 南江县| 鄂尔多斯市| 武义县| 环江| 呈贡县| 融水| 唐海县| 滦平县| 兴和县| 张家口市| 望奎县|