我正在尝试通过互联网建立从客户端到服务器的两个连接(TCP和UDP)。 TCP连接工作正常,但UDP连接立即关闭,因此无法正确建立。
如果我在同一台计算机上进行本地测试,则一切工作正常。包括数据传输在内的两个连接均按预期工作。
我已经在服务器上同时打开了TCP和UDP的端口。
服务器:
Connection.StartListening(ConnectionType.TCP, new System.Net.IPEndPoint(ip, port));
Connection.StartListening(ConnectionType.UDP, new System.Net.IPEndPoint(ip, port));
客户:
ConnectionInfo connInfoTCP = new ConnectionInfo(ip, port);
ConnectionInfo connInfoUDP = new ConnectionInfo(ip, port);
try
{
userConnection = TCPConnection.GetConnection(connInfoTCP);
userConnectionUDP = UDPConnection.GetConnection(connInfoUDP,
UDPOptions.Handshake);
}
...
TCP连接建立得很好,但UDP连接立即关闭。
我想知道的是:如果我在本地尝试,则两个连接都将获得相同的networkcomms网络标识符,而在服务器上尝试运行UDP networkcomms网络标识符时,它始终显示AAAAAAAAAAAAAAAAAAAAAAAAA。但是端口和远程IP都可以。
这是我在服务器上的日志输出:
29.05.2019 14:54:16: Client connected :c7WvezQPAEqh8bIHwljipA Protocol: TCP Remote ip: xxx.xxx.xxx.xxx:55653
29.05.2019 14:54:17: Client connected :AAAAAAAAAAAAAAAAAAAAAA Protocol: UDP Remote ip: xxx.xxx.xxx.xxx:53951
29.05.2019 14:54:17: Client disconnected:AAAAAAAAAAAAAAAAAAAAAA
这是上面的日志输出的值:
Client connected: ConnectionInfo.NetworkIdentifier
Protocol: connection.ConnectionInfo.ConnectionType
Remote ip: connection.ConnectionInfo.RemoteEndPoint
一个普遍的问题:这是实现这种连接的最佳方法,还是会有更好的方法呢?还是比NetworkComms.Net库更好的解决方案?