回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在编写两个python脚本,使用python<em>sockets</em>通过UDP进行通信。下面是代码的相关部分</p>
<pre><code>s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((HOST, PORT))
s.setblocking(True) #I want it to be blocking
#(...)
(msg, addr) = sock.recvfrom(4)
#(...)
(msg2, addr2) = sock.recvfrom(2)
</code></pre>
<p>我希望接收是阻塞的,在我阅读第一个4字节部分之前,我不知道整个消息的大小。上面的代码在<code>sock.recvrfom(2)</code>部分被阻塞,而被修改的是一个<code>sock.recvfrom</code>而不是两个可以正常工作:</p>
^{pr2}$
<p>你知道我如何方便地分两部分读取传入的数据吗?知道为什么代码不能按预期工作吗?在</p>