古之成大事者,不唯有超世之才,亦唯有堅韌不拔之志也!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            3 隨筆 :: 44 文章 :: 1 評論 :: 0 Trackbacks
          客戶端輸入一串字符串  服務端反序輸出 quit退出來學習java socket編程。
          1:阻塞模式
             一次只能為一個客戶端服務,這種使用在實際使用過程中基本沒有用處
          package com.lei.socket.test;

          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.OutputStreamWriter;
          import java.net.ServerSocket;
          import java.net.Socket;

          public class SimpleServer {
              
              
          //啟動服務端監聽
              public void start(){
                  
          try{
                      ServerSocket server 
          = new ServerSocket(port);
                      Socket client 
          = null;
                      
          while(runFlag){
                          client 
          = server.accept();//阻塞
                          System.out.println("accept client " + client.getInetAddress().getHostAddress());
                          handleClient(client);
                      }
                      server.close();
                  }
          catch(IOException e){
                      System.out.println(
          "start error");
                  }
              }
              
          //處理客戶端請求
              public void handleClient(Socket client){
                  
          try{
                      BufferedReader inReader 
          = new BufferedReader(new InputStreamReader(client.getInputStream()));
                      BufferedWriter outWriter 
          = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
                      
          while(true){
                          outWriter.write(
          "please input String->");
                          outWriter.flush();
                          String str 
          = inReader.readLine();
                          
          if(str.equalsIgnoreCase("quit")){
                              outWriter.write(
          "quit ok");
                              client.close();
                              
          break;
                          }
                          
          else{
                              outWriter.write(
          "reulst is :" + new StringBuffer(str).reverse().toString());
                              outWriter.write(
          "\r\n");
                          }
                      }
                  }
          catch(IOException e){
                      System.out.println(
          "Handle client error");
                  }
              }
              
              
          public static void main(String[] args){
                  SimpleServer s 
          = new SimpleServer();
                  s.start();
              }

              
          private int port = 3000;
              
              
          private boolean runFlag = true;
          }


          posted on 2008-09-19 14:02 goto 閱讀(215) 評論(0)  編輯  收藏 所屬分類: SOCKET
          主站蜘蛛池模板: 阜康市| 镇原县| 巴林左旗| 沁水县| 武城县| 寿宁县| 屏边| 安乡县| 临潭县| 连云港市| 阿合奇县| 巴彦县| 顺昌县| 莱州市| 贵州省| 鄂伦春自治旗| 彰化县| 房产| 天峻县| 泾阳县| 琼海市| 新宁县| 孙吴县| 娄烦县| 苗栗县| 蕉岭县| 龙海市| 赤城县| 五家渠市| 射洪县| 通州市| 秦安县| 南汇区| 景德镇市| 永年县| 兖州市| 永昌县| 瓦房店市| 樟树市| 淮阳县| 溆浦县|