如何使用nc发送udp包到windows 7?

时间:2013-05-19 07:25:33

标签: bash udp raspberry-pi

我需要将一些udp数据包经常从raspberry pi发送到Windows 7,在Windows端,我使用UDPclient来监听任何udp数据,这就是代码:

        byte[] data = new byte[1024];
        string input, stringData;
        UdpClient server = new UdpClient("127.0.0.1", 9050);

        IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);

        while (true)
        {
            data = server.Receive(ref sender);
            stringData = Encoding.ASCII.GetString(data, 0, data.Length);
            Console.WriteLine(stringData);
        }
        Console.WriteLine("Stopping client");
        server.Close();

和树莓派方面,我想写一个bash脚本来完成这项工作,但我不知道怎么做, 我做了一些测试,如果我输入:

nc -vnzu 192.168.0.104

输出为:连接到192.168.0.104 9050端口[udp / *]成功!

如果我输入:

 nc -4u -w1 192.168.0.104 9050

没有输出,似乎仍然没有错误。

如果我不使用nc,只需输入:

echo -n "hello" >/dev/udp/192.168.0.104/9050

没有显示错误消息,但在Windows端,上面的c#progeam没有显示任何接收数据

所以,任何人都可以告诉我如何做到这一点,最好用bash脚本形式,谢谢。

1 个答案:

答案 0 :(得分:0)

大多数bash实现没有编译成/dev/udp / /dev/tcp支持,因此这可能是不适合您的原因。

假设您启用了它们:问题可能是Windows 7端的防火墙配置问题。检查Windows 7防火墙是否允许到所选端口的入站连接(9050)。