我正在编写服务器/客户端应用程序。我的服务器在本地IP地址上运行良好,我能够使用127.0.0.1作为IP地址测试其所有功能,并与我的服务器通信。 今天我在我的服务器应用程序中使用我的公共IP地址作为IP地址,我配置了我的端口转发并使用网络上的常用工具进行检查,并且每个人都说我的端口是打开的,实际上我在我的服务器上获得端口检查器站点数据包,显示一切正常精细。 但是当我想从我的客户端应用程序连接它是用c#编写的(我的服务器也在c#中)时,我在Socket.Connect函数中得到异常,代码在“由于目标机器主动拒绝它而无法建立连接” :
clientSocket = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
Console.WriteLine("Connectiong to server");
clientSocket.Connect("151.243.130.245", 1892);
这是我服务器上的监听方法:
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
for (int i = 0; i < MAX_CLIENTS; ++i)
{
clients[i] = new Client();
}
serverSocket.Bind(new IPEndPoint(IPAddress.Any, 1892));
serverSocket.Listen(MAX_CLIENTS);
serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), null);
我必须提到我从朋友家测试了端口检查站点,它确实向我的服务器发送了一个数据包。 我也有一个连接到我的电脑的无线USB适配器,我将它连接到我的模式。
我搜索了所有的互联网,每个人都说在这个错误中常见的问题是你没有在那个端口上监听,或者你被防火墙程序阻止但是我不得不说我做了两个,这意味着我用过-netstat -anb它显示我正在侦听端口1892,我也配置防火墙让任何连接通过它但仍然没有运气:(
任何帮助将不胜感激。