2010-11-12 48 views
2

我想更改udpclient receivebuffersize以防止接收udp數據包時發生緩衝區溢出。是否有可能改變它在C#中。實際的屬性是UdpClient.Client.ReceiveBufferSize。我必須使用其他方法嗎?是否有可能在c#中設置UdpClient ReceiveBufferSize屬性?

謝謝。

+0

您是否確定在創建'UdpClient'後直接設置ReceiveBufferSize](http://stackoverflow.com/a/9680672/709537),然後再做任何事情? – 2015-02-03 04:16:32

回答

2

您應該能夠執行以下操作:

UdpClient client = new UdpClient(); 
    client.Client.ReceiveBufferSize = 4096; 
+0

我想我確實提到過我知道UdpClient.Client.ReceiveBufferSize。從http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.receivebuffersize.aspx,ReceiveBufferSize僅用於tcpclient。我在我的udpclient中測試過,但沒有看到任何區別。實際上,我確信它不適用於udp。這就是爲什麼我在這裏問。 – 2010-11-12 20:17:00

+0

其他人已經得到這個工作,看看這篇文章:http://stackoverflow.com/questions/2408212/how-can-i-set-the-buffer-size-for-the-underneath-socket-udp-c – SwDevMan81 2010-11-12 20:37:40

0

我不知道這是否會有所幫助,但它看起來像UdpClient允許你提供自己的Socket。在內部,UdpClient創建Socket有這樣的說法:

new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 

Connect(),它會檢查是否Client已經設置,如果是這樣,使用該Socket連接。

相關問題