亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java實現socket客戶端連接服務端

2019-11-26 14:56:40
字體:
來源:轉載
供稿:網友

本例只做簡單功能演示,代碼并不嚴謹,只是說明客戶端如何實現連接服務端簡單代碼。

代碼在集成Eclipse工具下測試編譯運行環境如下圖所示:

客戶端echoClient.java代碼:

package com.zhengzz.echo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;class EchoC{    private Socket socket;    public EchoC() {    // TODO Auto-generated constructor stub    try {      socket = new Socket("localhost", 60000);    } catch (UnknownHostException e) {      e.printStackTrace();    } catch (IOException e) {      e.printStackTrace();    }  }    public void Client() {    try {      BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));      PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);      BufferedReader lbr = new BufferedReader(new InputStreamReader(System.in));            String linestr = null;      while ((linestr = lbr.readLine()) != null) {                pw.println(linestr);                System.out.println(br.readLine());                if (linestr.equals("bye#")) {          break;        }      }                } catch (IOException e) {      e.printStackTrace();    }  }}public class echoClient {  public static void main(String[] args) {    new EchoC().Client();  }}

服務端echoServer.java代碼:

package com.zhengzz.echo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;class EchoS{    private ServerSocket serverSocket;    public EchoS() {        try {      serverSocket = new ServerSocket(60000);    } catch (IOException e) {      e.printStackTrace();    }      }    public void Server() {    while (true) {      try {        Socket socket = serverSocket.accept();                System.out.println("client:" + socket.getInetAddress() + ":" + socket.getLocalPort());        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));        PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);        String linestr;        while ((linestr = br.readLine()) != null) {          System.out.println(linestr);          pw.println("--->" + linestr);        }      } catch (IOException e) {        System.out.println("連接斷開:(");      }    }}}public class echoServer {  public static void main(String[] args) {    new EchoS().Server();  }}

我在Eclipse工具下直接調試結果如下:

下面我們再來看一個 HelloWord 級別的 Java Socket 通信的例子。通訊過程:

        先啟動 Server 端,進入一個死循環以便一直監聽某端口是否有連接請求。然后運行 Client 端,客戶端發出連接請求,服務端監聽到這次請求后向客戶端發回接受消息,連接建立,啟動一個線程去處理這次請求,然后繼續死循環監聽其他請求??蛻舳溯斎胱址蟀椿剀囨I,向服務器發送數據。服務器讀取數據后回復客戶端數據。這次請求處理完畢,啟動的線程消亡。如果客戶端接收到 "OK" 之外的返回數據,會再次發送連接請求并發送數據,服務器會為這次連接再次啟動一個線程來進行響應。。。直到當客戶端接收到的返回數據為 "OK" 時,客戶端退出。

        服務端源代碼:

package com.defonds.socket.begin;  import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket;  public class Server {   public static final int PORT = 12345;//監聽的端口號        public static void main(String[] args) {      System.out.println("服務器啟動.../n");      Server server = new Server();      server.init();    }      public void init() {      try {        ServerSocket serverSocket = new ServerSocket(PORT);        while (true) {          // 一旦有堵塞, 則表示服務器與客戶端獲得了連接          Socket client = serverSocket.accept();          // 處理這次連接          new HandlerThread(client);        }      } catch (Exception e) {        System.out.println("服務器異常: " + e.getMessage());      }    }      private class HandlerThread implements Runnable {      private Socket socket;      public HandlerThread(Socket client) {        socket = client;        new Thread(this).start();      }        public void run() {        try {          // 讀取客戶端數據          DataInputStream input = new DataInputStream(socket.getInputStream());         String clientInputStr = input.readUTF();//這里要注意和客戶端輸出流的寫方法對應,否則會拋 EOFException         // 處理客戶端數據          System.out.println("客戶端發過來的內容:" + clientInputStr);            // 向客戶端回復信息          DataOutputStream out = new DataOutputStream(socket.getOutputStream());          System.out.print("請輸入:/t");          // 發送鍵盤輸入的一行          String s = new BufferedReader(new InputStreamReader(System.in)).readLine();          out.writeUTF(s);                   out.close();          input.close();        } catch (Exception e) {          System.out.println("服務器 run 異常: " + e.getMessage());        } finally {          if (socket != null) {            try {              socket.close();            } catch (Exception e) {              socket = null;              System.out.println("服務端 finally 異常:" + e.getMessage());            }          }        }      }    }  }  

客戶端源代碼:

package com.defonds.socket.begin;  import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket;  public class Client {   public static final String IP_ADDR = "localhost";//服務器地址    public static final int PORT = 12345;//服務器端口號       public static void main(String[] args) {      System.out.println("客戶端啟動...");      System.out.println("當接收到服務器端字符為 /"OK/" 的時候, 客戶端將終止/n");      while (true) {        Socket socket = null;       try {         //創建一個流套接字并將其連接到指定主機上的指定端口號         socket = new Socket(IP_ADDR, PORT);                    //讀取服務器端數據          DataInputStream input = new DataInputStream(socket.getInputStream());          //向服務器端發送數據          DataOutputStream out = new DataOutputStream(socket.getOutputStream());          System.out.print("請輸入: /t");          String str = new BufferedReader(new InputStreamReader(System.in)).readLine();          out.writeUTF(str);                    String ret = input.readUTF();           System.out.println("服務器端返回過來的是: " + ret);          // 如接收到 "OK" 則斷開連接          if ("OK".equals(ret)) {            System.out.println("客戶端將關閉連接");            Thread.sleep(500);            break;          }                   out.close();         input.close();       } catch (Exception e) {         System.out.println("客戶端異常:" + e.getMessage());        } finally {         if (socket != null) {           try {             socket.close();           } catch (IOException e) {             socket = null;              System.out.println("客戶端 finally 異常:" + e.getMessage());            }         }       }     }    }  }  

        注意: Socket 輸出流寫數據方法是 writeUTF 時,輸入流讀取相關數據要用 readUTF。否則會拋 EOFException 異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本一区二区三区在线播放| 91国产精品电影| 亚洲风情亚aⅴ在线发布| 欧美电影《睫毛膏》| 久久这里只有精品99| 久久久精品一区二区三区| 欧美一区二区三区精品电影| 久久久久国产精品一区| 久久久噜噜噜久久久| 91亚洲国产精品| 欧美国产日韩中文字幕在线| 91在线观看免费| 91久久国产婷婷一区二区| 日韩成人中文字幕| 精品国产自在精品国产浪潮| 国产精品一区二区三区免费视频| 日韩成人在线视频| 97精品伊人久久久大香线蕉| 国产一区二区丝袜高跟鞋图片| 欧美性猛交xxxx乱大交3| 欧美日在线观看| 成人网中文字幕| 久久久久久久国产| 庆余年2免费日韩剧观看大牛| 欧美精品久久久久| 欧美洲成人男女午夜视频| 国产男女猛烈无遮挡91| 日日噜噜噜夜夜爽亚洲精品| 97色在线视频观看| 第一福利永久视频精品| 国产午夜精品久久久| 日韩成人在线视频| 91精品国产高清自在线看超| 欧美一级片在线播放| 日韩中文在线中文网在线观看| 国产日韩欧美视频在线| 欧美电影免费播放| 亚洲人成网站999久久久综合| 久久久精品免费| 九九精品在线观看| 成人免费淫片aa视频免费| 一区二区三区四区在线观看视频| 97国产精品久久| 成人免费大片黄在线播放| 青草青草久热精品视频在线观看| 96精品久久久久中文字幕| 亚洲性无码av在线| 国产色综合天天综合网| 午夜欧美大片免费观看| 午夜欧美不卡精品aaaaa| 国产亚洲精品久久久久久牛牛| 91av视频在线免费观看| 国产亚洲欧洲黄色| 成人性生交大片免费观看嘿嘿视频| 精品国内自产拍在线观看| 欧洲亚洲女同hd| 91久久夜色精品国产网站| 国产精品美女午夜av| 午夜欧美大片免费观看| 亚洲人成自拍网站| 大桥未久av一区二区三区| 亚洲美女激情视频| 精品亚洲永久免费精品| 欧美午夜视频在线观看| 日本aⅴ大伊香蕉精品视频| 日韩电影中文字幕av| 成人精品网站在线观看| 国产精品久久久亚洲| 一本色道久久综合狠狠躁篇怎么玩| 欧美日韩福利视频| 九九热99久久久国产盗摄| 中文字幕一区二区精品| 久久成人亚洲精品| 自拍偷拍亚洲欧美| 国产一区二区三区四区福利| 91精品久久久久久久久久久久久久| 亚州精品天堂中文字幕| 国产一区深夜福利| 欧美性高跟鞋xxxxhd| 国产一区二区激情| 亚洲日本成人女熟在线观看| 国产a级全部精品| 日本久久中文字幕| 欧美体内谢she精2性欧美| 91久久精品国产91性色| 在线观看久久久久久| 日韩国产精品一区| 国产aaa精品| 国产视频福利一区| 亚洲视频视频在线| 午夜精品一区二区三区在线视频| 日韩av在线高清| 91日韩在线视频| 日韩免费在线播放| 欧美中文在线字幕| 日韩成人在线视频观看| 成人黄色免费片| 91精品视频在线播放| 91青草视频久久| 在线观看国产欧美| 91天堂在线视频| 国产亚洲成av人片在线观看桃| 日本欧美精品在线| 日韩欧美一区二区三区| 懂色aⅴ精品一区二区三区蜜月| 97婷婷涩涩精品一区| 久久精品视频中文字幕| 日韩精品免费在线视频观看| 欧美性猛交xxxx乱大交3| 日本免费在线精品| 精品久久久久久久中文字幕| 国产成人免费91av在线| 国内精品久久久久伊人av| 一区二区三区回区在观看免费视频| 理论片在线不卡免费观看| 91av网站在线播放| 成人字幕网zmw| 蜜臀久久99精品久久久无需会员| 国产精品中文久久久久久久| 亚洲人a成www在线影院| 国产综合福利在线| 久久精品国产成人精品| 欧美性猛交xxxx免费看漫画| 成人精品视频99在线观看免费| www国产精品com| 日韩中文字幕在线视频播放| 国产免费亚洲高清| 69视频在线播放| 日韩中文字幕国产精品| 国产精品户外野外| 久久久久一本一区二区青青蜜月| 日韩av影视在线| 久热精品视频在线观看| 欧美午夜精品在线| 最近2019中文字幕第三页视频| 日韩中文在线视频| 国产日韩欧美日韩| 69国产精品成人在线播放| 亚洲国产精品一区二区三区| 4k岛国日韩精品**专区| 91精品国产91久久久久久吃药| 亚洲成人精品视频在线观看| 亚洲欧洲美洲在线综合| 欧美小视频在线| 欧美精品videosex性欧美| 亚洲午夜久久久久久久| 亚洲欧美日韩精品久久| 欧美巨乳在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 两个人的视频www国产精品| 亚洲国产精品热久久| 91久久精品美女高潮| 全色精品综合影院| 亚洲xxxx18| 亚洲男人天堂网| 国产免费一区视频观看免费| 性欧美亚洲xxxx乳在线观看| 一区二区在线视频播放| 欧美日韩999| 91精品久久久久久久| 日韩一二三在线视频播| 欧美性生活大片免费观看网址| 欧美有码在线视频| 国产欧美va欧美va香蕉在|