我正在为一个公式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很新,所以我真的不知道自己做错了什么或者如何修复它。
谢谢!
答案 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();