.NET에서 udp 소켓을 사용하고 있는데 특히 udp 소켓으로 그림 상자에서 다른 프로그램으로 이미지를 보내는 프로그램을 만들었습니다. UDP 소켓 C# .NET
이
코드이다이 소켓 포트로부터 이미지를 수신하는 수신기 부분 (8000)
private void Listening()
{
IPEndPoint ipep = new IPEndPoint(IPAddress.Loopback, 8000);
Socket newsock = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
newsock.Bind(ipep);
int recv;
IPEndPoint sender1 = new IPEndPoint(IPAddress.Parse("192.168.1.1"), 6000);
EndPoint Remote = (EndPoint)sender1;
byte[] data = new byte[11230];
recv = newsock.ReceiveFrom(data,ref Remote);
MemoryStream x = new MemoryStream(data);
Image y = Image.FromStream(x);
pictureBox2.Image = y;
}
이 소켓 화상 [코드]
private void Sending()
{
IPAddress host = IPAddress.Parse("127.0.0.1");
IPEndPoint hostep = new IPEndPoint(host, 8000);
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sock.Connect(hostep);
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
sock.Send(ms.ToArray());
}
를 전송하는 전송 부이고
두 부품이 동일한 PC에 있습니다.
내 문제는이 호출 때 예외 오순절이 메시지를 생성하는 "보내기"일부 기능을 "보내기"입니다 :
"데이터 그램 소켓에 보낸 메시지의 크기가 내부 메시지 버퍼보다 큰 경우 또는 다른 네트워크 제한, 또는 데이터 그램의 수신 버퍼의 크기는
UDP를 사용하지 마십시오. 진지하게. ** 당신이 정말로 * 필요로하는 UDP를 안다면, 사용하지 마십시오. –
오류 메시지가 분명합니다 : 보내려는 데이터의 양이 UDP에 비해 너무 큽니다. 그 외에도, 코드에는 많은 문제가 있으므로 @JonathonReinhart가 말한 것에 +1합니다. – dtb
@dtb TCP 대신 UDP를 선택하는 경우를 제외하고는 무엇이 오류입니까? –