簡體   English   中英

如何確定/設置套接字緩沖區大小?

[英]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_RCVBUFSIZSO_SNDBUFSIZ選項通過setsockopt()設置套接字緩沖區的大小,也可以通過getsockopt()來獲取它。

但是,我同意@JonathonReinhart的觀點,這最不可能解決您的實際問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM