自学小白菜 发表于 2022-3-23 20:56:22

python socket问题

代码只有部分,不是很重要,重要的是问题!!!
代码如下图:


我的问题是:我有两个循环,每个循环中都有一个socket接收数据,但是为什么第二次循环中接收的数据全是第一次循环的末尾的一个值?望大家帮忙解答一下,网络编程太久没有看过了,忘记了。

isdkz 发表于 2022-3-23 20:56:23

你说的第二次循环是什么意思,不是很明白你想表达什么?

自学小白菜 发表于 2022-3-23 21:00:44

伪代码如下:
while 100:
    socket.recvfrom(1024)

while 1200:
    socket.recvfrom(1024)

第一次的100次循环,接收的数据正常,
但是第二次循环接收的1200个数据全为第一次接收的末尾值

自学小白菜 发表于 2022-3-23 21:01:16

isdkz 发表于 2022-3-23 20:59
你说的第二次循环是什么意思,不是很明白你想表达什么?


伪代码如下:
while 100:
    socket.recvfrom(1024)

while 1200:
    socket.recvfrom(1024)

第一次的100次循环,接收的数据正常,
但是第二次循环接收的1200个数据全为第一次接收的末尾值

isdkz 发表于 2022-3-23 21:03:56

自学小白菜 发表于 2022-3-23 21:01
伪代码如下:
while 100:
    socket.recvfrom(1024)


你是不是发的消息超过了 1024 个字节?

自学小白菜 发表于 2022-3-23 21:08:06

isdkz 发表于 2022-3-23 21:03
你是不是发的消息超过了 1024 个字节?

应该不是,因为我接受的数据都来自另外一个软件,发送的数据都是类似的,如果超过1024字节的话,那么第一个循环应该也不行才对。

自学小白菜 发表于 2022-3-23 21:11:12

isdkz 发表于 2022-3-23 21:03
你是不是发的消息超过了 1024 个字节?

我已经解决了,是自己代码有点问题,还是谢谢你了

isdkz 发表于 2022-3-23 21:13:41

自学小白菜 发表于 2022-3-23 21:11
我已经解决了,是自己代码有点问题,还是谢谢你了

好吧,我想不通{:10_277:},应该断包粘包才会有这种问题的呀,

可是你的是 udp,udp 应该不会出现粘包的

自学小白菜 发表于 2022-3-23 21:27:44

isdkz 发表于 2022-3-23 21:13
好吧,我想不通,应该断包粘包才会有这种问题的呀,

可是你的是 udp,udp 应该不会出现粘包 ...

我也想过这些原因的,实在也是想不明白为什么第二个循环数据居然会一样,然后我又仔细的看了一遍代码,发现我第二个接收数据的列表写成了第一个,哈哈,{:5_93:}
页: [1]
查看完整版本: python socket问题