【发布时间】:2014-07-07 03:05:51
【问题描述】:
我正在尝试使用 Python 作为编程语言从 TCP 连接(仅限客户端)获取数据,
但是,我可以看到所有数据都不是一次接收,而是在接收过程中被切断......我可以在论坛上看到 TCP 没有以正确的顺序发送数据(有点随机,链接:Python socket receive - incoming packets always have a different size),我错了吗?
我的问题是,是否有办法确保我正确接收了所有数据?
提前感谢您的帮助和回复,
PS:我已经增加了 socket.recv() 的缓冲区大小,但仍然面临同样的问题......而且我只在 CentOS 下工作
编辑:(无法回答我自己的问题:(在这个论坛上还是初学者:))
嗨,
非常感谢您的回复,我确实不用担心 TCP 连接 :)
经过更多调查,我终于找到了解决方案......(我在这里发布我的问题之前搜索了几天),
如果有人需要答案,在python中你必须等待完整的消息,否则消息可以被剪切,所以这意味着:
data = s.recv(1024, socket.MSG_WAITALL) --> 's'是python代码中创建的socket对象,
亲切的问候
【问题讨论】:
标签: python sockets tcp buffer recv