一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - JAVA編程實現TCP網絡通訊的方法示例

JAVA編程實現TCP網絡通訊的方法示例

2020-12-09 14:02遲做總比不做強 Java教程

這篇文章主要介紹了JAVA編程實現TCP網絡通訊的方法,簡單說明了TCP通訊的原理并結合具體實例形式分析了java實現TCP通訊的步驟與相關操作技巧,需要的朋友可以參考下

本文實例講述了JAVA編程實現TCP網絡通訊的方法。分享給大家供大家參考,具體如下:

TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。

由IETF的RFC 793定義,在簡化的計算機網絡OSI模型中,它完成第四層傳輸層所指定的功能。

基于TCP網絡通訊實現的類主要有服務器端的ServerSocket用客戶端的Socket。

通訊流程:

打開服務器,等待客戶端連接-->客戶端連接上服務器-->數據通訊。

代碼實現步驟:

1. 創建服務器端(ServerSocket)對象或客戶端(Socket)對象。
2. 建立起服務器與客戶端連接
3. 通過輸入輸出流進行文件(數據)通訊
4. 通訊結束 ,關閉資源 。

一個簡單的小例子,服務端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class SocketServer {
  public static void main(String[] args) {
    try {
      // 創建一個服務器ServerSocket,并指定端口號為5120
      ServerSocket mServerSocket = new ServerSocket(5120);
      // 等待客戶端連接
      Socket socket = mServerSocket.accept();
      // 連接上客戶端后,獲取客戶端輸入流信息
      InputStream is = socket.getInputStream();
      // 通過獲取緩沖數據方式來讀取文本信息
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      // 獲取文本信息
      String line;
      StringBuffer sb = new StringBuffer();
      while ((line = br.readLine()) != null) {
        sb.append(line);
      }
      System.out.println(sb.toString());
      socket.shutdownInput();
      // 收到客戶端信息后,回復客戶端信息
      OutputStream os = socket.getOutputStream();
      PrintWriter pw = new PrintWriter(os);
      pw.write("收到回復,我是服務端");
      pw.flush();
      // 關閉流通常放在finally中操作
      os.close();
      br.close();
      is.close();
      pw.close();
      socket.close();
      mServerSocket.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

客戶端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class ClientSocket {
  public static void main(String[] args) {
    try {
      // 創建客戶端Socket,指定主機和端口
      Socket mSocket = new Socket("localhost", 5120);
      // 通過輸入流向服務器發數據
      OutputStream os = mSocket.getOutputStream();
      PrintWriter pw = new PrintWriter(os);
      pw.write("來自客戶端Socket的數據,你收到了嗎?");
      pw.flush();
      mSocket.shutdownOutput();
      // 收取服務端的回復信息
      InputStream is = mSocket.getInputStream();
      // 通過獲取緩沖數據方式來讀取文本信息
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      // 獲取文本信息
      String line;
      StringBuffer sb = new StringBuffer();
      while ((line = br.readLine()) != null) {
        sb.append(line);
      }
      System.out.println(sb.toString());
      // 關閉流通常放在finally中操作
      br.close();
      is.close();
      pw.close();
      os.close();
      mSocket.close();
    } catch (UnknownHostException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

運行時,要先啟動服務端,然后啟動客記戶端,通常網絡通訊會與多線程交織在一起。

希望本文所述對大家java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人精品免费午夜 | 非洲一级毛片又粗又长aaaa | 翁用力的抽插 | 久久久无码精品亚洲A片软件 | 天堂网在线.www天堂在线资源 | 亚洲日本在线观看网址 | 亚洲色影| 四虎最新免费网址 | avove全部视频在线观看 | 99爱在线| 久久水蜜桃亚洲AV无码精品偷窥 | 国产亚洲视频网站 | 丰满的闺蜜2中文字幕 | 精灵之森高清在线 | 亚洲视频中文 | chinesespanking调教| 91肥熟国产老肥熟在线 | 国产精品特黄毛片 | 午夜五月天 | 男人狂擦女人的下面视频 | 男人天堂网页 | 天天舔天天干天天操 | 国产美女亚洲精品久久久综合 | 日韩福利网| 全彩孕交漫画福利啪啪吧 | 女bbwxxxx非洲黑人 | 三级午夜宅宅伦不卡在线 | 我的青梅竹马是消防员2季未增删免费 | 为什么丈夫插我我却喜欢被打着插 | 天堂va在线高清一区 | 男人爱看的网站 | 亚洲精品 欧美 | 小莹的性荡生活45章 | 亚洲日本视频在线观看 | 91夜夜人人揉人人捏人人添 | ai换脸杨幂被c在线观看 | 无码专区aaaaaa免费视频 | 成年人免费在线播放 | 美女艹b | 91精品国产免费久久国语蜜臀 | 久热人人综合人人九九精品视频 |