在socket客户端如何接收服务端发来的多条信息
时间: 2023-09-17 11:07:52 浏览: 149
android,socket服务端和客户端实现2端发送和接收消息
在socket客户端接收服务端发来的多条信息,可以通过循环来实现。具体的实现步骤如下:
1. 在客户端程序中创建一个循环,让其不断地接收服务端发送过来的数据。
2. 在每一次循环中,使用 recv() 函数从服务端接收数据。recv() 函数会阻塞程序,直到接收到数据或者连接断开。
3. 将接收到的数据存储到一个缓冲区中。
4. 如果服务端断开了连接,那么退出循环。
5. 如果接收到的数据长度为 0,那么说明服务端已经关闭了连接。此时需要退出循环。
6. 如果接收到的数据不为空,那么就对其进行处理,比如输出到控制台或者保存到文件中。
下面是一个简单的示例代码:
```python
import socket
# 创建一个 TCP/IP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务端
server_address = ('localhost', 8888)
client_socket.connect(server_address)
while True:
# 接收服务端发送过来的数据
data = client_socket.recv(1024)
# 如果服务端断开了连接,那么退出循环
if not data:
break
# 对接收到的数据进行处理
print('Received:', data)
# 关闭客户端 socket
client_socket.close()
```
阅读全文