這裏的任何機構可以告訴我如何發送大於提供給UDP套接字的系統緩衝區的數據報,以測試MSG_TRANC中的MSG_TRANC,以及如何獲取套接字緩衝區的大小?如何發送大於系統緩衝區的UDP數據報?
0
A
回答
0
使用SO_SNDBUF
標誌,您可以始終使用setsockopt
函數增加緩衝區大小。
否則send
(或sendto
)將正常阻塞。
但是,我建議您嘗試重寫協議,以便數據包能夠放入發送緩衝區。您可以隨時在收到包裝後重新組裝包裝(如果您有正確的順序)。
0
你是什麼意思或想做什麼?
我希望你讀http://en.wikipedia.org/wiki/User_Datagram_Protocol
你是否試圖發送總長度大於單個數據包大小的數據報?或者你的發送緩衝區用於構建一個太小的數據包?
+0
我想測試MSG_TRUNC assosiated與UDP套接字,所以我必須增加發送端的緩衝區大小,所以MSG_TRUNC標誌工作 – ibatta 2012-08-09 10:45:13
相關問題
- 1. 操作系統緩衝數據包的UDP
- 2. Winsock發送recv緩衝區大小
- 3. 如何增加SocketChannel的發送緩衝區大小?
- 4. Linux上的UDP套接字;發送成功但無法接收大緩衝區
- 5. 如何在接收緩衝區中放回udp數據包
- 6. UDP空緩衝區ReceiveAsync
- 7. 谷歌大查詢 - 沖洗緩衝區數據(緩衝區4天數據)
- 8. 設置接收和發送緩衝區的套接字緩衝區大小
- 9. 統一緩衝區,glGetActiveUniformBlockiv報告的大小
- 10. 沒有填充接收緩衝區的UDP緩衝區溢出?
- 11. RxJS - 如何手動發送緩衝區/查看緩衝區中的元素
- 12. 如何在windows 7中設置maxumim UDP緩衝區大小
- 13. 合併VIM系統緩衝區
- 14. 通過系統鍵盤緩衝區進行數據傳輸? (VFP9)
- 15. Python海報緩衝區大小
- 16. 用於udp的Android數據報套接字發送
- 17. 數據報包接收緩衝區大小-java
- 18. 圖片不發送通過UDP由於較少緩衝器大小C#
- 19. 數據緩衝區
- 20. 如何更新大於當前vbo緩衝區大小的vbo數據?
- 21. 如何測量我發送UDP數據報的速度?
- 22. STM32f0發現USART緩衝區不發送
- 23. MPI發送和接收掛起的緩衝區大小大於64kb
- 24. Java UDP數據報包 - 在Java中對數據進行切片以適應緩衝區大小
- 25. 數據流任務緩衝區大小
- 26. 緩衝區大小大於在MPI_SEND
- 27. XP中的C#中的UDP緩衝區
- 28. 如何從不同的緩衝區或數組發送數據進行渲染?
- 29. 將緩衝區發送給Arduino,損壞的數據
- 30. 發送方緩衝區中未確認數據的TCP表示
您不能發送大於套接字緩衝區的UDP數據包。 (內核沒有空間,send()會與EMSGSIZE發生錯誤)你不能接收大於套接字緩衝區的數據報。 (內核沒有空間,並會丟棄數據包)。 – nos 2012-08-09 10:39:31
但有一個標誌告訴你消息被截斷了 – ibatta 2012-08-10 11:20:12
是的。也就是說,如果您嘗試在應用程序的_your_緩衝區中讀取數據包,但_your_緩衝區不夠大。例如某人向您發送了一個1000字節的數據包,並且您向recvmsg()發送了一個大小爲500的緩衝區,MSG_TRUNC標誌將被設置,前500個字節被複制到您的緩衝區,另外500個字節被丟棄。這裏有很多層次的工作。網卡 - >驅動程序環形緩衝區 - >內核套接字緩衝區 - >您的應用程序 – nos 2012-08-10 11:33:00