0

我在学校时想测试 UDPClient 类。我连接到学校的无线网络,它有严格的防火墙。

与此示例相比,此代码似乎相当可靠。(http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx)但是当我打开wireshark时,我看不到任何数据包(当我过滤UDP数据包时或其他)。

关于我的代码可能有什么问题的任何想法?我认为它被学校的防火墙阻止了,但我不确定。

  public static void CallBack(IAsyncResult result)
        {
            UdpClient myClient = result.AsyncState as UdpClient;
            int sent = myClient.EndSend(result);
            Console.WriteLine("Sent " + sent.ToString() + " bytes");
        }
        static void Main(string[] args)
        {
            UdpClient myClient = new UdpClient(57422);
            try
            {
                myClient.Connect(IPAddress.Parse("127.0.0.1"), 57422);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

                int b = 1;
                b = IPAddress.HostToNetworkOrder(b);
                string myName = "ALEX";

                int lengthOfB = System.BitConverter.GetBytes(b).Length;
                int lengthOfName = NUEncoder.GetByteCount(myName);

                Byte[] intBytes = System.BitConverter.GetBytes(b);
                Byte[] nameBytes = NUEncoder.GetBytes(myName);

                Byte[] bytesToSend = new Byte[lengthOfB + lengthOfName];

                int i = 0;
                for (i = 0; i < lengthOfName; i++)
                {
                    bytesToSend[i] = nameBytes[i];
                }

                for (int k = 0; k < lengthOfB; k++)
                {
                    bytesToSend[i] = intBytes[k];
                    i++;
                }

                myClient.BeginSend(bytesToSend, bytesToSend.Length, CallBack, myClient);

                Console.WriteLine("Sleeping...");
                Thread.Sleep(50);
                Console.WriteLine("Done");
            }
        }
4

1 回答 1

4

您正在将数据发送到您的 PC (127.0.0.1)。我认为这就是为什么你在 Wireshark 上看不到任何东西的原因。

于 2010-03-10T20:50:13.277 回答