由于目标计算机主动拒绝连接,因此无法建立连接-套接字程序
本文关键字:连接 建立 程序 套接字 目标计算机 拒绝 | 更新日期: 2023-09-27 18:23:50
我面临的问题在标题中给出。这就是我所在的位置:
-
在端口61911:上启动并运行了套接字服务器
_server.Bind(新IPEndPoint(IPAddress.Any,61911));
-
该端口(61911)被全局打开,并将服务器IP地址设置为192.168.1.2(我的电脑)
-
防火墙和防病毒程序处理得很好。
-
运行套接字服务器并从YouGetSignal.com 获得端口打开状态
图片:
http://img189.imageshack.us/img189/1777/x07w.png
-
当^检查时,套接字服务器反应良好,我认为这意味着建立了与托管服务器的连接。
-
但是当通过客户端访问时,我会得到指定的错误'无法建立连接…'
这是我在客户端中用于连接的代码:
private static void LoopConnect()
{
while (!_client.Connected)
{
try
{
IPAddress ip = IPAddress.Parse("**PUBLIC IP**");
IPEndPoint remoteEP = new IPEndPoint(ip,61911);
_client.Connect(remoteEP);
}
catch (SocketException e) { Console.WriteLine(e.Message); }
}
Console.WriteLine("Connected!");
}
这个在服务器中处理接受的代码:
private static void SetupServer()
{
Console.WriteLine("Setting up Server.. ");
_server.Bind(new IPEndPoint(IPAddress.Any, 61911));
_server.Listen(4);
Console.WriteLine("Server UP!");
_server.BeginAccept(new AsyncCallback(AcceptCallBack), null);
}
private static void AcceptCallBack(IAsyncResult AR)
{
Socket socket = _server.EndAccept(AR);
_clients.Add(socket);
socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
_server.BeginAccept(new AsyncCallback(AcceptCallBack), null);
}
所以我想这就是我能提供的关于这个问题的所有信息。。
*关于恶意软件保护、防火墙、端口转发的所有问题。。完成。*并且端口在netstat -anb
中打开
感谢的解决方案:)
编辑:客户端发送请求,然后服务器确认。但我认为客户不会接受。为此,我应该在路由器中做一些其他事情,比如从"内部"移植。这怎么可能???
发生的情况是:
- 客户端尝试连接到公共IP
- 这样做时,它将连接到网关(即您的路由器)
- 您的路由器拒绝访问该端口,因为您只从外部的打开它,而不是从内部的打开
要测试您的应用程序,只需使用本地IP(192.168.1.2)。部署时,您可以使用外部地址。你也可以从路由器内部打开端口转发,但这不在这个答案的范围内。