有没有一种方法可以区分正在发送的数据包?例如:
python接收数据
it处理数据
客户端发送第一个数据包
客户端发送第二个数据包
python接收数据,我可以接收第一个包而不是缓冲区中的所有信息吗
我知道我可以设置它,这样它就会发送我确认的数据,并且客户端不会发送更多的数据,我已经确认处理了最后一块,但我宁愿不发送
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(("", 2000))
sock.listen(5)所有相关的套接字数据
发布于 2010-10-12 23:30:15
基本上有两种方法:
正如S.Lott所指出的,您可以使用UDP (它是基于数据包的)而不是TCP (它是基于流的),但是这样就放弃了TCP提供的其他功能(重传丢弃的数据包、连续的数据包和拥塞控制)。编写自己的重传代码并不太难,但拥塞控制很难做到正确。
发布于 2010-10-12 23:04:32
是否有一种方法可以区分正在发送的数据包?
是。使用UDP而不是TCP。
发布于 2010-10-13 00:56:55
网络字符串是一种用于发送数据包的简单序列化格式。每个数据包的形式为'length: data‘。http://en.wikipedia.org/wiki/Netstring
像twisted这样的Python网络框架直接支持netstring。
https://stackoverflow.com/questions/3914542
复制相似问题