跨套接字发送数据可能太慢?

2024-06-10 02:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

背景:我在Raspberry Pi 4上设置了一个TCP套接字python脚本,用于与非网络机器对话。机器设置了命令,我通过套接字向它发送一个请求,基本上查询“a的值是多少?”并且机器响应是a的值。虽然我对机器的编码不太熟悉,但我的理解是,当以这种方式查询时,它会打印出值。我通过套接字接收数据,只需将一个socket.sendall("What is the value of A")后跟一个socket.recv(SIZE)。我的比喻是,它就像一只手把球扔到墙上,另一只手接住球一样。该连接使用约100英尺长的以太网电缆进行

问题:我可以通过这个套接字进行大量查询,直到我可以来回发送60个条目数组5-10次,但最终连接关闭。我不太清楚这是为什么。到了这个地步,我必须拔掉所有的插头,关闭所有的插座,在再试之前给它一点时间。虽然在不完全理解机器的情况下诊断问题可能不清楚(我不能提供更多信息),但我倾向于使用线程独立运行两个进程:一个线程进行查询,一个线程进行接收。我的猜测是recv()错过了众所周知的球,然后坐在那里等待机器的回复,但是机器再也不会说话了,因为代码只是等待而已。我在线程方面没有太多经验,因此希望能提出一些建议。另一个想法是以太网电缆太长,Pi无法处理如此多的数据。这让人觉得更天真,但我不是一名网络工程师,因此并不声称完全理解这个过程

提前感谢,请随时提出任何澄清问题


Tags: 命令网络脚本机器编码方式pisocket