通过Python套接字接收数据

7 投票
1 回答
49633 浏览
提问于 2025-04-11 18:40

我正在制作一个程序,通过Python的socket获取相当大量的数据,然后在信息发送完后立即断开连接。但我不太确定该怎么做。

网上的所有例子都是关于TCP客户端的,它们通常会有这样的代码:

while 1:
   data = sock.recv(1024)

但是这样会导致一个无限循环来通过socket接收数据,对吧?

我需要弄清楚传入消息的大小,并以缓冲区大小的增量来循环读取,以获取完整的消息。而在消息发送完后,我想断开连接,尽管我觉得连接会从另一端关闭。

任何帮助都很好。

谢谢。

1 个回答

21

你可能忽略了那些例子中一个非常重要的部分——在“recv()”调用之后的几行代码:

while 1:
    data = conn.recv(1024)
    if not data: break
    conn.send(data)
conn.close()

撰写回答