Python socket 和接收字节的测量
大家好,
我有一个简单的Python脚本,它向一个服务发送4个字节的数据,并设置了一个1024字节的接收缓冲区。我想知道怎么测量从服务返回的数据字节数,以便加一些逻辑。如果返回的字节数大于10字节,就做X的事情;否则就做Y的事情。我就是搞不清楚怎么测量返回的字节数。如果能给点提示就太好了。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ("10.0.0.1", 5000)
s.connect(address)
s.send('1234')
data = socket.recv(1024)
s.close()
1 个回答
3
size = len(data)
这里的data是一串字节,用字符串的形式表示。所以,获取这个字符串的长度就能得到你想要的结果。
不过,你可能会遇到一个问题,因为你使用的是TCP协议,它是一个数据流。这意味着你不能保证在一次接收(recv())中只会收到一条完整的信息。解决这个问题的一个简单方法是,在你的协议中添加一个大小参数,并增加一些逻辑来重新组装和解析消息。