我正在尝试用C#做一个TCP服务器。
我的代码如下:
TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 4201);
server.Start();
var client = await server.AcceptTcpClientAsync();
//do something with the client.
问题在于,当我调用该TCP服务器时,它仍然堆栈在方法AcceptTcpClientAsync()
上。
我用来尝试连接到上述服务器的Java代码:
Socket clientSocket = new Socket("127.0.0.1", 4201);
我在Java中遇到了异常-
Exception in thread "main" java.net.ConnectException: Connection timed out: connect
at java.base/java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.base/java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225)
当我尝试在Java中打开ServerSocket时:
ServerSocket welcomeSocket = new ServerSocket(4201);
Socket connectionSocket = welcomeSocket.accept();
//do something with the connectionSocket.
一切正常,我能够连接到服务器,所以我想问题不在端口或防火墙中。
无论如何,我都添加了防火墙规则-
netsh advfirewall firewall add rule name="Open port 4201" dir=in action=allow protocol=TCP localport=4201
但是C#服务器仍然无法正常工作。
您知道我还能尝试什么吗?
谢谢。