本人最近搞一個專案想通過原始套接字抓到資料包,重構IP和TCP 報頭資訊,再進行轉發。但我發現抓到的資料包有些遠遠超過了1500位元組,但經過重構后通過sendto函式發送,會出現發送失敗(錯誤原因90:包過大)的情況,由于專案限制我只能使用sendto函式進行轉發,是不是sendto函式發送tcp包大小必須小于1500位元組呢?希望有大神可以解答。萬分感謝!
uj5u.com熱心網友回復:
sendto 不是用于UDP的嗎?跟TCP不一樣的報頭吧(猜測的)。按理說,包過大就拆分,應該是可以的。sendto的包確實不能大于1500,但用于TCP的話,即使大于1500,也可由下層自動拆分而不致出錯。樓主拆下包試試?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/37167.html
標籤:網絡通信
上一篇:救命命!!!
