擅长:python、mysql、java
<p>无法确保发送的数据块的大小。如果要确保要发送的所有数据都已发送,可以关闭连接:</p>
<pre><code>self.sck.close()
</code></pre>
<p>还要注意,n=socket.send()返回实际发送的字节数。如果您确定要发送所有数据,则应使用</p>
<pre><code>self.sck.sendall()
</code></pre>
<p>或循环发送数据:</p>
<pre><code>while data:
n = self.sck.send(data)
data = data[n:]
</code></pre>
<p>(但这与sendall()大致相同)。
如果您想以更大的块接收数据,可以在recv()中增加缓冲区的大小,但这只会使可能的块大小变大。无法保证数据达到这些大小。</p>