TCP套接字 - 只接收部分消息

时间:2016-02-21 15:13:22

标签: python sockets tcp size buffer

我有一个使用TCP进行通信的客户端和服务器。我想将数据从客户端传输到服务器。

客户端:

import socket
V=''
for i in range(1,400)
    V=V+"%s %s %s" %s (i,i,i)

s = socket.socket(socket.AF_INT,socket.SOCK_STREAM)
s.connect((IP,PORT))
s.send(V)
s.close

和服务器:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)

while 1:
        connection, addr = s.accept() 
        V_recived = connection.recv(8192)

当我运行这两个脚本时,我看到客户端计算机上的V大小为4485字节,而在服务器计算机上,V_received的大小在不同的运行之间发生变化:大部分时间是1481字节,有些时间是是4485或更少。 根据我的理解,TCP协议的使用应该保证我的所有数据都会被转移,因此我不明白我做错了什么......

有什么想法吗?

0 个答案:

没有答案