作者hardman1110 (笨小孩)
看板Python
标题[问题] socket接收资料时会不完整
时间Tue Dec 13 09:09:06 2016
目前写了server & client 程式如下:
https://github.com/ChiFang/python_socket.git
主要是想把图片从client 用rb模式读进来传给server
目前在windows上运作良好,但在ubuntu上server端总是会漏接资料
我图片249566 byte recv时大小给270000 但收到的大小常常小於图片大小
恳请各位大大 指教一下小弟 这大概是什麽问题 感谢
note:
连接模式:
是本机自连 ip给127.0.0.1
且sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
传送用send (sendall用过 一样会漏资料)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.72.181.189
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1481591350.A.81A.html
1F:推 tiefblau: 收资料的方法不太对吧 你这样很容易收满buffer 12/13 09:18
2F:→ tiefblau: 一般应该是 每次收一小块 4096之类的 再接起来 12/13 09:18
3F:→ tiefblau: 看一下socket.recv document的那个note 12/13 09:20
4F:→ hardman1110: 收满的意思是? 我每次接收的量>图片大小不就可以了? 12/13 09:26
5F:→ tiefblau: socekt buffer大小有限 不是你写多少就多少 12/13 09:36
6F:→ hardman1110: 原来如此... 但windows下居然都没出错真奇怪 12/13 10:00
7F:→ hardman1110: 感谢t大指点^^ 12/13 10:00
8F:→ dannypsnl: 因为那本来就没错,系统只会丢掉多的部分而已 12/14 01:26