我正在尝试通过 Internet 建立从客户端到服务器的两个连接(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 连接立即关闭。
我想知道的是:如果我在本地尝试它,我会为两个连接获得相同的网络通信网络标识符,而我在服务器上尝试它时,UDP 网络通信网络标识符总是显示 AAAAAAAAAAAAAAAAAAAAAA。但是端口和远程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 库更好的解决方案?