我刚开始使用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%)时会丢失,这意味着服务器没有收到它。
屏幕截图:
为什么会这样?
我可以做任何事情来提高效率吗?
答案 0 :(得分:0)
在服务器中,您正在调用List<T>
两次:首先在while循环条件下,然后在循环体中。每个recv()
从套接字消耗最多100000个字节,因此您实际上丢弃了每次读取的数据。
请改为尝试:
recv()