2011-04-07 5 views
3

송신 버퍼 크기에 제한이 있습니까, 작은 팩을 보낼 수 있습니다 -ie : 1000 bytes- 약 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; 
관련 문제