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 閱讀(553) 評論(0)  編輯  收藏 所屬分類: Java App

          主站蜘蛛池模板: 永吉县| 洪泽县| 呼图壁县| 洛扎县| 张家口市| 独山县| 浦城县| 泸西县| 云梦县| 洛浦县| 泸溪县| 黔西| 永清县| 高青县| 炎陵县| 高台县| 库车县| 左权县| 搜索| 延庆县| 榕江县| 会理县| 随州市| 玉山县| 搜索| 永寿县| 兴国县| 宝清县| 雅江县| 凤凰县| 房产| 屏山县| 曲沃县| 曲松县| 锦州市| 武陟县| 郁南县| 工布江达县| 光泽县| 治多县| 鄂尔多斯市|