[英]How to determine/set socket buffer size?
我正在編寫兩個程序(在Visual Studio上),一個程序發送和一個程序接收UDP數據包(1,000字節)。 當前,我的發送者正在發送udp數據包,在發送另一個數據包之前先休眠1 ms。 為了提高速率,我僅在發送約20個數據包后才使發送方休眠1 ms。 問題是,如果我在每次睡眠前增加數據包的數量,接收方往往會丟失數據包。 所以我想也許如果我增加套接字緩沖區的大小會更好嗎?
我知道TCP是一個比較安全的選擇,但讓我們假設我只能使用UDP,並且我需要確保可以高速率發送數據包而不會丟失數據包,我該怎么辦? 我如何檢查我的套接字緩沖區大小? 目前,我的程序僅使用“ sethost”和“ bind”,然后使用“ sendto”發送udp數據包。
您可以使用SO_RCVBUFSIZ
或SO_SNDBUFSIZ
選項通過setsockopt()
設置套接字緩沖區的大小,也可以通過getsockopt()
來獲取它。
但是,我同意@JonathonReinhart的觀點,這最不可能解決您的實際問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.