我正在写一个C#P2P视频聊天(我在Faculty考试的一部分),我很难通过udp发送数据。所以这里是如何工作的。我有一个Web_Capture库,每次捕获图像时,它都会将PictureBox图像设置为捕获的图像
private void webCamCapture_ImageCaptured(object source, WebCam_Capture.WebcamEventArgs e)
{
myCamera.Image = e.WebCamImage;
sendData(ref ipep2); // send it immediately
}
然后sendData方法开始发送...
private void sendData(ref IPEndPoint sender)
{
byte[] data;
if (friendsClient == null)
{
friendsClient = new UdpClient();
}
MemoryStream myStream = new MemoryStream();
myCamera.Image.Save(myStream, System.Drawing.Imaging.ImageFormat.Jpeg);
data = myStream.GetBuffer();
friendsClient.Send(data, data.Length,sender);
}
当我调试时,弹出套接字异常:
System.Net.Sockets.SocketException was unhandled by user code
Message=The requested address is not valid in its context
Source=System
ErrorCode=10049
NativeErrorCode=10049
所以,有没有人有任何想法,如果他用代码支持这个想法,我会感激不尽,因为我在c#中很高兴:)提前感谢。马里安
答案 0 :(得分:1)
您应该指定接收方的IP和端口Here is a complete example
因此您应该将实施更改为
private void sendData(ref IPEndPoint reciever)
{
byte[] data;
Socket sending_socket = new Socket(AddressFamily.InterNetwork, ocketType.Dgram, ProtocolType.Udp);
MemoryStream myStream = new MemoryStream();
myCamera.Image.Save(myStream, System.Drawing.Imaging.ImageFormat.Jpeg);
data = myStream.GetBuffer();
sending_socket.SendTo(data, reciever);
}