gpt4 book ai didi

c# - UdpClient.() 与 UdpClient(端口)

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:29 24 4
gpt4 key购买 nike

我有一个小问题和一个解决方案,但我想了解到底发生了什么。根据 UdpClient 的构造函数,我使用 EndReceive() 是否抛出套接字异常(10054 - 现有连接已被远程主机关闭(翻译自德语))

感谢任何提示!文森特

private UdpClient udpClient;

void recv(IAsyncResult res)
{
IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);
byte[] data = udpClient.EndReceive(res, ref remote); // code stops here in debug

// do something with data received from remote

udpClient.BeginReceive(new AsyncCallback(recv), null);
}

private void Form1_Load(object sender, EventArgs e)
{

//udpClient = new UdpClient(); // will throw exception
udpClient = new UdpClient(8000); // will not throw exception
udpClient.Connect("127.0.0.1", 8000);
udpClient.BeginReceive(new AsyncCallback(recv), null);
}

private void button1_Click(object sender, EventArgs e)
{
udpClient.Send(Encoding.ASCII.GetBytes("Hallo"), 5);
}

最佳答案

情况 1:udpClient = new UdpClient() - 您将套接字绑定(bind)到随机本地端口
情况 2:udpClient = new UdpClient(8000) - 您将套接字绑定(bind)到本地端口 8000

也许万一远程主机尝试发送到随机端口并被防火墙拒绝?

关于c# - UdpClient.() 与 UdpClient(端口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7418338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com