gpt4 book ai didi

python 2.7.8 : Socket - Client Server Data loss in TCP socket

转载 作者:可可西里 更新时间:2023-11-01 02:54:16 25 4
gpt4 key购买 nike

我刚开始使用 python 中的套接字。我使用以下内容在本地主机中设置了基本的客户端-服务器安排:

对于服务器:

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

为什么会这样?

我可以做些什么来提高效率吗?

最佳答案

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

试试这个:

from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.bind(('', 6969))
s.listen(10)
c, a = s.accept()

while True:
data = c.recv(100000)
if data:
print data
else:
print "Client closed connection"
break

关于 python 2.7.8 : Socket - Client Server Data loss in TCP socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31356719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com