TCP通信 多发多收 客户端:多次发送数据 服务器:接收多次接收数据,并打印
时间: 2024-11-30 09:14:59 浏览: 14
TCP(Transmission Control Protocol)是一种传输层协议,它是互联网协议族的一部分,主要用于提供可靠的数据传输服务,确保信息在网络中的完整性和顺序。在TCP通信中,多发多收(Multiple Send Multiple Receive)指的是客户端可以在一个连接上发送多个数据包,而服务器也会接收并处理这些连续的数据。
当你描述的客户端需要多次发送数据时,这通常是在进行长消息传输、流式数据传输或者是批量操作的时候。客户端可以使用循环或for循环结构,创建多个数据段,然后逐个调用`write()`方法发送到服务器:
```java
// 假设我们有一个String数组要发送
List<String> dataToSend = ...;
for (String message : dataToSend) {
try (OutputStream outputStream = socket.getOutputStream()) {
byte[] bytes = message.getBytes(StandardCharsets.UTF_8);
outputStream.write(bytes);
} catch (IOException e) {
// 处理异常
}
}
```
服务器端则会在接收到每个数据段后,逐一进行处理。你可以设置一个无限循环或者直到数据传输完成,然后读取数据并打印出来:
```java
while (true) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
String receivedMessage = reader.readLine();
if (receivedMessage == null) {
break; // 如果到达EOF,表示数据传输结束
}
System.out.println("Received: " + receivedMessage);
} catch (IOException e) {
// 处理异常
}
}
```
阅读全文