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

看板Python作者 (笨小孩)時間9年前 (2016/12/13 09:09), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
目前寫了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://www.ptt.cc/bbs/Python/M.1481591350.A.81A.html

12/13 09:18, , 1F
收資料的方法不太對吧 你這樣很容易收滿buffer
12/13 09:18, 1F

12/13 09:18, , 2F
一般應該是 每次收一小塊 4096之類的 再接起來
12/13 09:18, 2F

12/13 09:20, , 3F
看一下socket.recv document的那個note
12/13 09:20, 3F

12/13 09:26, , 4F
收滿的意思是? 我每次接收的量>圖片大小不就可以了?
12/13 09:26, 4F

12/13 09:36, , 5F
socekt buffer大小有限 不是你寫多少就多少
12/13 09:36, 5F

12/13 10:00, , 6F
原來如此... 但windows下居然都沒出錯真奇怪
12/13 10:00, 6F

12/13 10:00, , 7F
感謝t大指點^^
12/13 10:00, 7F

12/14 01:26, , 8F
因為那本來就沒錯,系統只會丟掉多的部分而已
12/14 01:26, 8F
文章代碼(AID): #1OJqesWQ (Python)
文章代碼(AID): #1OJqesWQ (Python)