[問題] socket接收資料時會不完整

作者: hardman1110 (笨小孩)   2016-12-13 09:09:06
目前寫了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用過 一樣會漏資料)
作者: tiefblau (tiefblau)   2016-12-13 09:18:00
收資料的方法不太對吧 你這樣很容易收滿buffer一般應該是 每次收一小塊 4096之類的 再接起來看一下socket.recv document的那個note
作者: hardman1110 (笨小孩)   2016-12-13 09:26:00
收滿的意思是? 我每次接收的量>圖片大小不就可以了?
作者: tiefblau (tiefblau)   2016-12-13 09:36:00
socekt buffer大小有限 不是你寫多少就多少
作者: hardman1110 (笨小孩)   2016-12-13 10:00:00
原來如此... 但windows下居然都沒出錯真奇怪感謝t大指點^^
作者: dannypsnl (秦書)   2016-12-14 01:26:00
因為那本來就沒錯,系統只會丟掉多的部分而已

Links booklink

Contact Us: admin [ a t ] ucptt.com