C# - UDP SocketException - 应用程序之间的冲突

时间:2017-08-16 11:28:09

标签: c# asp.net udp

我正在为一个公式1游戏构建一个类似网站的仪表板。 我跟着这个guide。 (部分:启用UDP遥测输出)

基本上,游戏使用UDP在127.0.0.1:20777上发送数据包,我试图在我的应用程序中接收这些数据包。

我的问题是,当我尝试接收数据包时,游戏和我的应用之间似乎存在某种冲突。例如,如果我在游戏未运行时编译应用程序,它编译得很好,但当然,我没有收到任何数据。

一旦游戏开始,我就无法编译,并得到一个SocketException,表示"通常只允许使用每个套接字地址(协议/网络地址/端口)"。

我尝试了以下内容:

UdpClient client = new UdpClient(20777);

UdpClient client = new UdpClient(); IpEndPoint ip = new IpEndPoint(IpAdress.Any, 20777); client.Connect(ip);

第一个解决方案抛出"只有一个用法...",第二个解决方案抛出"请求的地址在其上下文中无效"。我对UDP很新,所以我真的不知道自己做错了什么或者如何修复它。

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信你应该试着收听端口20777,而不是试图连接。

可能是这样的:

var client = new UdpClient();
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20777 ); // endpoint where server is listening
client.Connect(ep);

// then receive data
var receivedData = client.Receive(ref ep);

Console.Write("receive data from " + ep.ToString());

Console.Read();