2010-11-12 21 views
2

Je souhaite modifier udpclient receivebuffersize afin d'empêcher le dépassement de tampon lors de la réception de paquets udp. est-il possible de le changer en C#. La propriété réelle est UdpClient.Client.ReceiveBufferSize. Dois-je utiliser une autre méthode?Est-il possible de définir la propriété UdpClient ReceiveBufferSize dans C#?

Merci.

+0

Avez-vous veillé à [définir 'ReceiveBufferSize' directement après avoir créé le' UdpClient'] (http://stackoverflow.com/a/9680672/709537), avant de faire quoi que ce soit? –

Répondre

2

Vous devriez être en mesure de faire ce qui suit:

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

Je pense que j'ai mentionné que je suis au courant de UdpClient.Client.ReceiveBufferSize. À partir de http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.receivebuffersize.aspx, ReceiveBufferSize est utilisé uniquement pour tcpclient. J'ai fait un test dans mon udpclient mais je ne vois aucune différence. En fait, je veeeery sûr que ça ne marche pas pour UDP. C'est pourquoi j'ai demandé ici. –

+0

D'autres ont eu ce travail, consultez ce post: http://stackoverflow.com/questions/2408212/how-can-i-set-the-buffer-size-for-the-underneath-socket-udp-c – SwDevMan81

0

Je ne sais pas si cela aide, mais il semble que UdpClient vous permet de fournir votre propre Socket. En interne, UdpClient crée la Socket avec cette déclaration:

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

Dans le Connect(), il vérifie si Client a déjà été fixés et, le cas échéant, utilise que Socket pour se connecter à.