有沒有發送緩衝區大小的限制,我可以發送小包-ie:1000字節- 但是,當我嘗試發送約20K什麼也沒有發生,遠程將不會收到數據包 加遠程將不會收到任何更多的數據。Socket.Send緩衝區大小是否有限?
System.Net.Sockets.Socket.Send((byte)buffer);
有沒有發送緩衝區大小的限制,我可以發送小包-ie:1000字節- 但是,當我嘗試發送約20K什麼也沒有發生,遠程將不會收到數據包 加遠程將不會收到任何更多的數據。Socket.Send緩衝區大小是否有限?
System.Net.Sockets.Socket.Send((byte)buffer);
作爲文檔狀態,this method返回發送的字節數。這是你的責任,然後發送剩餘的字節。
緩衝液1024: 'socket.BeginReceive(sm.m_StreamManager.m_Buffer,0,BUFFER_SIZE_1024,0, \t \t \t \t新的AsyncCallback(this.ReadCallback),sm);' – 2011-04-08 06:48:52
Send()返回一個Int32,指示發送了多少字節。所以可以推斷出緩衝區大小的上限是Int32.MaxValue。
至於爲什麼你在使用20k字節緩衝區時遇到麻煩 - 你沒有提供足夠的信息來猜測。
根據MSDN,Socket.SendBuffer默認緩衝區大小爲8192。如果需要,你可以增加這個。
tcpSocket.SendBufferSize = 8192;
「數據包」是一個UDP術語。 UDP被限制到最小的MTU:http://en.wikipedia.org/wiki/Maximum_transmission_unit – 2011-04-07 21:15:40