2011-04-07 12 views
3

送信バッファサイズに制限はありますが、私は小さなパックを送ることができます-ie:1000バイト- 約20Kを送信しようとすると何も起こりません、リモートはパケットを受信しません プラスリモートは、 。Socket.Sendのバッファサイズは制限されていますか?

System.Net.Sockets.Socket.Send((byte)buffer); 
+2

「パケット」はUDP用語です。 UDPは最小MTUに制限される:http://en.wikipedia.org/wiki/Maximum_transmission_unit –

答えて

2

docsの状態では、this methodは送信されたバイト数を返します。残ったバイトを送信するのはあなたの責任です。

+0

バッファは、1024であった: 'socket.BeginReceive(sm.m_StreamManager.m_Buffer、0、BUFFER_SIZE_1024、0、 \t \t \t \t \t \t \t \t新しいAsyncCallback(this.ReadCallback)、sm); ' –

4

Send()は送信されたバイト数を示すInt32を返します。したがって、バッファサイズの上限がInt32.MaxValueであると推測できます。

なぜ20kバイトのバッファに問題があるのでしょうか?推測するには十分な情報を提供していません。

1

MSDNによると、Socket.SendBufferのデフォルトバッファサイズは8192です。必要に応じてこれを増やすことができます。

tcpSocket.SendBufferSize = 8192; 
関連する問題