python出现套接字创建不成功_我的python套接字实现是不可靠的

我正在尝试创建套接字客户端和服务器并在它们之间交换数据。我有下面的代码,但它是不可靠的。它在局域网上工作,但是一旦我通过互联网在旧电脑上测试它,我会得到错误,因为其中一方错误地将一块块视为块长度。我添加了sendall("1")来确认块已被接收,但它没有解决它。我也尝试将time.sleep增加到1秒,并将块长度降低到4096和512位。任何帮助表示赞赏。整个代码在这里,改变:https://github.com/hclivess/Bismuth/blob/master/node.py

服务器代码:

receive_left = self.request.recv(10)

while int(receive_left) > 0: # while there are chunks to receive

chunk_length = self.request.recv(10) # identify chunk length

app_log.info("Node: Received chunk length: " + str(chunk_length))

self.request.sendall("1") # acknowledge chunk length

time.sleep(0.1)

chunk = self.request.recv(int(chunk_length))

app_log.info("Node: Received chunk: " + chunk)

chunks = chunks + str(chunk)

receive_left = int(receive_left) - 1

app_log.info("Node: Combined chunks: " + chunks)客户代码:

chunks = 0

while int(receive_left) > 0:

chunk_length = len(data_split[chunks])

while len(str(chunk_length)) != 10:

chunk_length = "0" + str(chunk_length)

app_log.info("Node: chunk length to dispatch: " + str(chunk_length))

self.request.sendall(

chunk_length) # send how much they should receive

time.sleep(0.1)

self.request.recv(1) # receive chunk length acknowledgement

app_log.info("Node: chunk to dispatch: " + str(data_split[chunks])) # send chunk

self.request.sendall(data_split[chunks]) # send chunk

time.sleep(0.1)

receive_left = int(receive_left) - 1

chunks = chunks + 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值