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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java Socket編程實(shí)例(一)- TCP基本使用

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

2020-05-16 16:05kingxss JAVA教程

這篇文章主要講解Java Socket編程中TCP的基本使用,希望能給大家做一個(gè)參考。

一.服務(wù)端代碼:

?
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
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 */
  }
}

二.客戶端代碼:

?
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
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服務(wù)端是單線程,一次只能服務(wù)一個(gè)客戶端。

查看更多Java的語(yǔ)法,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好大好猛好爽好深视频免费 | 亚洲精品成人456在线播放 | 精品国产mmd在线观看 | 天美视频在线 | 91av免费| 成人影院视频 | 欧美yyy| 撕开老师的丝袜白丝扒开粉嫩的小 | 污黄在线观看 | 欧美亚洲国产另类在线观看 | 日本成日本片人免费 | 无人区在线观看免费国语完整版 | 日本免费观看的视频在线 | 国产一区二区三区四 | 亚洲精品国产一区二区第一页 | 国产青草视频在线观看免费影院 | 欧美日韩亚毛片免费观看 | 欧美香蕉 | 日韩精品成人免费观看 | 动漫美女羞羞 | 午夜免费啪视频观看视频 | 色老板美国在线观看 | 免费观看欧美成人禁片 | 丰满肥臀风间由美357在线 | 青青青国产在线 | 婷婷色天使在线视频观看 | 天堂资源在线8 | 久久精品热99看 | 男人插曲女人下面 | 亚洲视频一区网站 | 日本三级做a全过程在线观看 | 色妞女女女女女bbbb | 色老板视频在线观看 | 大陆黄色片 | 好大好猛好爽好深视频免费 | 美国玩尿眼道videos | 免费视频网 | 超兴奋朋友的中文字幕下 | 强行扒开美女大腿挺进 | 成人免费视频大全 | 亚洲 在线 日韩 欧美 |