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 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)