vjame

          優化代碼是無止境的
          隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0
          數據加載中……

          Java的單線程Socket通信

          服務端:
          import java.io.BufferedReader;    
          import java.io.IOException;    
          import java.io.InputStreamReader;    
          import java.io.PrintWriter;    
          import java.net.ServerSocket;    
          import java.net.Socket;    
             
          public class ServerSocket {    
             
              
          public static void main(String[] args) {    
                  
          try {    
                      createServerSocket();    
                  } 
          catch (IOException e) {    
                      
          // TODO Auto-generated catch block    
                      e.printStackTrace();    
                  }    
              }    
             
              
          private static void createServerSocket() throws IOException {    
                  ServerSocket serverSocket 
          = new ServerSocket(8189);    
                  Socket socket 
          = serverSocket.accept();// wait for client connection    
                  while (true) {    
                      BufferedReader in 
          = new BufferedReader(new InputStreamReader(socket    
                              .getInputStream()));    
                      PrintWriter out 
          = new PrintWriter(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();    
             
                  }    
              }    
             
          }    

          客戶端:
          import java.io.BufferedReader;    
          import java.io.IOException;    
          import java.io.InputStream;    
          import java.io.InputStreamReader;    
          import java.io.OutputStream;    
          import java.io.PrintWriter;    
          import java.net.Socket;    
          import java.net.UnknownHostException;    
          import java.util.Scanner;    
             
             
          public class ClientSocket {    
              
          private static final String URL = "localhost";    
             
              
          private static final int PORT = 8189;    
             
             
              
          /**   
               * create client socket   
               *    
               * 
          @throws IOException   
               * 
          @throws UnknownHostException   
               *    
               
          */   
              
          private static void createClientSocket() throws UnknownHostException,    
                      IOException {    
                  Socket clientSocket 
          = new Socket(URL, PORT);    
                  BufferedReader in 
          = new BufferedReader(new InputStreamReader(    
                          clientSocket.getInputStream()));    
                  PrintWriter out 
          = new PrintWriter(clientSocket.getOutputStream());    
                  BufferedReader wt 
          = new BufferedReader(new InputStreamReader(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 void main(String[] args) {    
             
                  
          try {    
                      createClientSocket();    
                  } 
          catch (UnknownHostException e) {    
                      
          // TODO Auto-generated catch block    
                      e.printStackTrace();    
                  } 
          catch (IOException e) {    
                      
          // TODO Auto-generated catch block    
                      e.printStackTrace();    
                  }    
              }    
          }    

          posted on 2008-12-11 19:23 lanjh 閱讀(547) 評論(0)  編輯  收藏 所屬分類: Java App

          主站蜘蛛池模板: 南宫市| 扬州市| 滦平县| 大余县| 邯郸县| 通山县| 许昌市| 义马市| 兴城市| 扎赉特旗| 巩留县| 石棉县| 密山市| 石柱| 洛扎县| 天长市| 拜城县| 韶山市| 图木舒克市| 桃园县| 电白县| 陇西县| 金坛市| 郧西县| 宜君县| 定州市| 靖宇县| 三亚市| 宜良县| 桦甸市| 鸡西市| 平湖市| 磐安县| 金寨县| 溧阳市| 新绛县| 荃湾区| 什邡市| 都昌县| 乌鲁木齐市| 远安县|