vjame

          優(yōu)化代碼是無止境的
          隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0
          數(shù)據(jù)加載中……

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

          主站蜘蛛池模板: 和田市| 中江县| 临汾市| 伊金霍洛旗| 松阳县| 固原市| 芜湖县| 荥阳市| 建昌县| 玉环县| 奇台县| 莎车县| 富宁县| 四会市| 崇左市| 商水县| 河东区| 白朗县| 六安市| 勃利县| 永登县| 资兴市| 伊吾县| 秭归县| 福海县| 凤阳县| 昭平县| 八宿县| 张北县| 奉新县| 伽师县| 收藏| 高密市| 新乡县| 常德市| 崇阳县| 渝中区| 荔波县| 曲松县| 夏邑县| 吉水县|