代码之家  ›  专栏  ›  技术社区  ›  bobber205

udpclient首次使用-怎么了?

  •  0
  • bobber205  · 技术社区  · 16 年前

    想在我上学的时候测试一下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 回复  |  直到 16 年前
        1
  •  4
  •   Maurizio Reginelli    16 年前

    您正在向PC发送数据(127.0.0.1)。我想这就是为什么你看不到关于wireshark的任何东西的原因。