UDP客户端错误 - 无法发送数据字节

时间:2012-03-24 21:26:39

标签: c# udp client-server udpclient

我正在写一个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#中很高兴:)提前感谢。马里安

1 个答案:

答案 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);
}