xhcsw 2014-12-22 08:29 采纳率: 0%
浏览 5009

C# UDP接收不到其他电脑发来的数据

做了一个局域网UDP传输数据的东西,在同一台电脑上测试的时候可以收到数据,发送端放到别的电脑上就收不到了,不知道是什么原因,求教各位大神!!

cls_interface.localHost cls_interface._socketRev 是static的
这是接收的代码

 cls_interface.localHost = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8001);
cls_interface._socketRev = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
cls_interface._socketRev.Bind(cls_interface.localHost);
while (!cls_interface.IsStopRev)
            {
                if (!cls_interface.IsSuspendRev)
                {
                    byte[] buffer = new byte[1024];
                    int len = 0;

                    IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
                    EndPoint Remote = (EndPoint)remoteEP;
                    len = cls_interface._socketRev.ReceiveFrom(buffer, ref Remote);

                    //获取读取到的信息
                    if (len > 0)
                    {
                        byte[] revbts = new byte[len];
                        for (int i = 0; i < len; i++)
                        {
                            revbts[i] = buffer[i];
                        }
                        get_udp_data(revbts);
                        pointsCount++;
                    }
                }//判断是否暂停
            }

这是发送代码

 public void SendData()
        {
            double x = 0;
            double i = 0;
            while (true)
            {
                i+=0.5;
                revdData revdata;

                /* revdata  结构体赋值*/
                //将结构体转换成byt[]
                Type type = typeof(revdData);
                int size = Marshal.SizeOf(type);
                IntPtr buffer=Marshal.AllocHGlobal(size);
                Marshal.StructureToPtr(revdata, buffer, false);
                byte[] bts=new byte[size];
                Marshal.Copy(buffer,bts,0,size);               

                double sd = Math.Sin(x);
                _socket.SendTo(bts, new IPEndPoint(IPAddress.Parse("192.168.1.2"), 8001));

                Marshal.FreeHGlobal(buffer);

                Thread.Sleep(100);
                x += 0.1;
            }
        }




  • 写回答

3条回答 默认 最新

  • xhcsw 2014-12-22 08:50
    关注

    自顶!求帮助!!!!!!!!!

    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式