[問題] socket 再使用UDP recvfrom(...)時的回傳值?
遇到的問題:目前在練習使用UDP作broadcast,但是現在發現一個怪問題
就是之前在TCP接收時,read()得回傳值有兩種,大於零代表接收的位元數,-1代表錯誤
也就是說i=0時結束傳輸.所以是使用for來多次分別讀取到i==0為止,但是現在書上的
範例在UDP broadcast沒有用for來連續讀取(用recvfrom),起初以為是傳輸量很小,
所以讀一次就可以讀完,但是得到的回傳值int i=recvfrom(......);
變成說是檔案讀到了,i值卻是-1 ???
是說這兩函數回傳值的意義不同,還是說讀到結束直到錯誤回傳-1是正常的?
以下範例:
我只用一行讀取
int i=recvfrom(XXXXX,XXX,XXX....);
印出來讀取到的是正確的,但是i的值是-1
希望得到的正確結果:是否i值是在這函數中持續變動,讀取到變成-1才結束此行?
所以最後讀到檔案尾的回傳值必定是-1嗎?
程式跑出來的錯誤結果:有傳輸成功~
開發平台:g++ Linux
有問題的code:打在上面了= = 只有一行
補充說明:感謝大家
練習遇到的問題想不透~
希望能得到答案XD 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.0.87
推
04/05 02:46, , 1F
04/05 02:46, 1F
→
04/05 10:40, , 2F
04/05 10:40, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章