[英]C# TCP Socket Client refuses connection
这是我的服务器
当在Internet上使用多个不同的端口检查工具时,我在服务器上建立了连接,表明我的端口已打开
http://www.infobyip.com/tcpportchecker.php
http://www.yougetsignal.com/tools/open-ports/
static void Main(string[] args)
{
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 10897);
Console.WriteLine("Server Start");
Socket listener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
listener.Bind(localEndPoint);
listener.Listen(10);
while (true)
{
Console.WriteLine("Waiting for a connection...");
Socket handler = listener.Accept();
Console.WriteLine(handler.RemoteEndPoint);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
这是我的客户代码
static void Main(string[] args)
{
IPEndPoint ip = new IPEndPoint(IPAddress.Parse("MY IP HERE"), 10897);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Connect(ip);
}
我每次都会遇到此错误,我尝试使用System.Net.Sockets.TcpClient和套接字从客户端进行多次尝试,并且每次我拒绝连接时,由于服务器从端口检查器接收到连接,因此我的客户端似乎出现了一些问题
我已经阅读了数十个其他套接字主题,但是所有问题都与服务器有关,而与客户端无关,我不知道有人有什么问题可以帮助我吗?
编辑:我可以通过本地主机(127.0.0.1)连接,但不能从我的公共IP连接
代码工作正常(服务器的前两行不执行任何操作)。 您有防火墙或路由问题。
看来问题出在我的路由器进行了一些设置,使其不接受与外部ip的内部连接,我让我的朋友运行了客户端代码,并且连接正常
它与Windows防火墙异常有关。 首次运行时,系统会提示您允许连接。 如果您第一次允许,则在防火墙中创建例外。 也许你否认了。 还可以尝试通过app.manifest为您的应用程序提升必需的特权
这似乎是端口转发/路由问题。 使用端口检查器检查转发的端口是否可访问
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.