Python 2.7.8:套接字 - TCP套接字中的客户端服务器数据丢失

时间:2015-07-11 11:29:59

标签: python sockets tcp

我刚开始使用python中的socket。我使用以下命令在localhost中设置了基本的客户端 - 服务器安排:

服务器

from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.bind(('', 6969))
s.listen(10)
c, a = s.accept()
while c.recv(100000) != '':
    print c.recv(100000)
客户端

from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.connect(('localhost', 6969))
while True:
    say = raw_input('Input Text: ')
    s.send(say)

现在,我发送一些数据(50%)时会丢失,这意味着服务器没有收到它。

屏幕截图:

enter image description here

为什么会这样?

我可以做任何事情来提高效率吗?

1 个答案:

答案 0 :(得分:0)

在服务器中,您正在调用List<T> 两次:首先在while循环条件下,然后在循环体中。每个recv()从套接字消耗最多100000个字节,因此您实际上丢弃了每次读取的数据。

请改为尝试:

recv()