最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Socket編程實例(一)- TCP基本使用

 更新時間:2016年06月15日 09:09:21   作者:kingxss  
這篇文章主要講解Java Socket編程中TCP的基本使用,希望能給大家做一個參考。

一.服務端代碼:

import java.net.*; // for Socket, ServerSocket, and InetAddress 
import java.io.*; // for IOException and Input/OutputStream 
 
public class TCPEchoServer { 
 
  private static final int BUFSIZE = 32; // Size of receive buffer 
 
  public static void main(String[] args) throws IOException { 
 
    int servPort = 5500; 
 
    // Create a server socket to accept client connection requests 
    ServerSocket servSock = new ServerSocket(servPort); 
 
    int recvMsgSize; // Size of received message 
    byte[] receiveBuf = new byte[BUFSIZE]; // Receive buffer 
 
    while (true) { // Run forever, accepting and servicing connections 
      Socket clntSock = servSock.accept(); // Get client connection 
 
      SocketAddress clientAddress = clntSock.getRemoteSocketAddress(); 
      System.out.println("Handling client at " + clientAddress); 
 
      InputStream in = clntSock.getInputStream(); 
      OutputStream out = clntSock.getOutputStream(); 
 
      // Receive until client closes connection, indicated by -1 return 
      while ((recvMsgSize = in.read(receiveBuf)) != -1) { 
        out.write(receiveBuf, 0, recvMsgSize); 
      } 
 
      clntSock.close(); // Close the socket. We are done with this client! 
    } 
    /* NOT REACHED */ 
  } 
} 

二.客戶端代碼:

import java.net.*; 
import java.io.*; 
 
public class TCPEchoClient { 
 
  public static void main(String[] args) throws IOException { 
 
    String server = "127.0.0.1"; // Server name or IP address 
    int servPort = 5500; //// Server port 
    byte[] data = "Hi, World".getBytes(); 
 
    // Create socket that is connected to server on specified port 
    Socket socket = new Socket(server, servPort); 
    System.out.println("Connected to server...sending echo string"); 
 
    InputStream in = socket.getInputStream(); 
    OutputStream out = socket.getOutputStream(); 
 
    out.write(data); // Send the encoded string to the server 
 
    // Receive the same string back from the server 
    int totalBytesRcvd = 0; // Total bytes received so far 
    int bytesRcvd; // Bytes received in last read 
    while (totalBytesRcvd < data.length) { 
      if ((bytesRcvd = in.read(data, totalBytesRcvd, data.length - totalBytesRcvd)) == -1) 
        throw new SocketException("Connection closed prematurely"); 
      totalBytesRcvd += bytesRcvd; 
    } // data array is full 
 
    System.out.println("Received: " + new String(data)); 
    socket.close(); // Close the socket and its streams 
  } 
} 

上述代碼的TCP服務端是單線程,一次只能服務一個客戶端。

查看更多Java的語法,大家可以關注:《Thinking in Java 中文手冊》、《JDK 1.7 參考手冊官方英文版》、《JDK 1.6 API java 中文參考手冊》、《JDK 1.5 API java 中文參考手冊》,也希望大家多多支持腳本之家。

相關文章

  • SpringCloud微服務剔除下線功能實現(xiàn)原理分析

    SpringCloud微服務剔除下線功能實現(xiàn)原理分析

    SpringCloud是一種微服務的框架,利用它我們可以去做分布式服務開發(fā),這篇文章主要介紹了SpringCloud微服務剔除下線功能,需要的朋友可以參考下
    2022-11-11
  • Java 高并發(fā)四:無鎖詳細介紹

    Java 高并發(fā)四:無鎖詳細介紹

    本文主要介紹Java 高并發(fā)無鎖的知識,這里整理了 1.無鎖類的原理詳解 2.無鎖類的使用的知識,并講解其原理,有需要的小伙伴可以參考下
    2016-09-09
  • java 中如何獲取字節(jié)碼文件的相關內容

    java 中如何獲取字節(jié)碼文件的相關內容

    這篇文章主要介紹了java 中如何獲取字節(jié)碼文件的相關內容的相關資料,需要的朋友可以參考下
    2017-04-04
  • Java獲取客戶端真實IP地址過程解析

    Java獲取客戶端真實IP地址過程解析

    這篇文章主要介紹了Java獲取客戶端真實IP地址過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • IntelliJ IDEA2020.3詳細安裝教程

    IntelliJ IDEA2020.3詳細安裝教程

    這篇文章主要介紹了IntelliJ IDEA2020.3詳細安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Spring Boot 2.0.0 終于正式發(fā)布-重大修訂版本

    Spring Boot 2.0.0 終于正式發(fā)布-重大修訂版本

    北京時間 2018 年 3 月 1 日早上,如約發(fā)布的 Spring Boot 2.0 在同步至 Maven 倉庫時出現(xiàn)問題,導致在 GitHub 上發(fā)布的 v2.0.0.RELEASE 被撤回
    2018-03-03
  • spring mvc實現(xiàn)登錄賬號單瀏覽器登錄

    spring mvc實現(xiàn)登錄賬號單瀏覽器登錄

    這篇文章主要為大家詳細介紹了spring mvc實現(xiàn)登錄賬號單瀏覽器登錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • springboot整合mongodb并實現(xiàn)crud步驟詳解

    springboot整合mongodb并實現(xiàn)crud步驟詳解

    這篇文章主要介紹了springboot整合mongodb并實現(xiàn)crud,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • MyBatis-Plus中提供的各種注解詳細說明

    MyBatis-Plus中提供的各種注解詳細說明

    這篇文章主要介紹了MyBatis-Plus中提供的各種注解詳細說明,下面對MyBatis-Plus提供的注解進行整理,本文提供了部分示例代碼以方便理解,需要的朋友可以參考下
    2023-11-11
  • SpringBoot JPA sort多屬性排序實例

    SpringBoot JPA sort多屬性排序實例

    這篇文章主要介紹了SpringBoot JPA sort多屬性排序實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

张掖市| 绍兴市| 宜城市| 任丘市| 靖宇县| 扬州市| 康平县| 克什克腾旗| 韶关市| 双柏县| 全椒县| 和顺县| 兰州市| 彭泽县| 安岳县| 杭锦后旗| 濮阳县| 普洱| 固安县| 扎囊县| 洪泽县| 三河市| 襄垣县| 克东县| 宜黄县| 雅江县| 昭通市| 三穗县| 防城港市| 积石山| 图木舒克市| 白朗县| 离岛区| 东明县| 大港区| 盱眙县| 关岭| 台中县| 安新县| 大余县| 博湖县|