UDPClient首次使用 - 有什么不对?

时间:2010-03-10 20:44:45

标签: c# udpclient

在我上学期间想要测试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");
            }
        }

1 个答案:

答案 0 :(得分:4)

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