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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            3 隨筆 :: 44 文章 :: 1 評(píng)論 :: 0 Trackbacks
          客戶端輸入一串字符串  服務(wù)端反序輸出 quit退出來(lái)學(xué)習(xí)java socket編程。
          1:阻塞模式
             一次只能為一個(gè)客戶端服務(wù),這種使用在實(shí)際使用過(guò)程中基本沒(méi)有用處
          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 {
              
              
          //啟動(dòng)服務(wù)端監(jiān)聽(tīng)
              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");
                  }
              }
              
          //處理客戶端請(qǐng)求
              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) 評(píng)論(0)  編輯  收藏 所屬分類: SOCKET
          主站蜘蛛池模板: 巴里| 涟水县| 花莲县| 普宁市| 太白县| 法库县| 舒兰市| 汝阳县| 滦平县| 烟台市| 修武县| 安岳县| 井研县| 米脂县| 牟定县| 元谋县| 沅陵县| 秭归县| 南昌县| 南通市| 琼中| 龙门县| 屏南县| 峨边| 福鼎市| 广东省| 宁晋县| 渝北区| 黄大仙区| 远安县| 水城县| 如皋市| 林州市| 陇南市| 大余县| 陆川县| 定安县| 比如县| 旺苍县| 施甸县| 普洱|