在我上学期间想要测试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");
}
}
答案 0 :(得分:4)
您正在向PC发送数据(127.0.0.1)。我认为这就是为什么你看不到Wireshark的原因。