【发布时间】:2019-03-10 20:52:04
【问题描述】:
我有一个服务器和一个客户端应用程序,服务器没有抛出异常并且似乎可以正常监听但客户端由于某些原因无法连接,我尝试使用本地网络和公共 IP。
-只有当客户端应用程序与服务器在同一台计算机上运行时,我才能连接到本地网络的 IP。
-使用公共 IP 没有任何东西可以连接到服务器。
但是在这两种情况下,当连接失败时,它的行为总是相同的:等待大约 5-10 秒,然后抛出 System.Net.Socket.SocketException。我先尝试使用端口 1507,然后尝试使用端口 80,但它没有改变任何东西
服务器
IPAddress adress = IPAddress.Parse(MyIp);
TcpListener listener = new TcpListener(adress, 80);
listener.Start();
TcpClient Client = await listener.AcceptTcpClientAsync();
客户
TcpClient client = new TcpClient();
client.ConnectAsync(IPAddress.Parse(MyIp), 80).GetAwaiter().GetResult();
我不明白问题出在哪里,是不是我的代码?如果不是,那可能是什么,我该如何解决?
【问题讨论】:
-
throws System.Net.Socket.SocketException异常名称通常不会说太多。请发布异常详细信息。 -
您是否已在服务器计算机上配置防火墙以允许 HTTP 访问?要从网络外部访问,您可能还需要在路由器上执行此操作。 (除了配置端口转发到服务器IP)
-
@Reniuz 我无法真正翻译它,但它说连接尝试失败,因为它在一段时间后没有得到良好的回答,或者因为连接的主机没有回答。
-
@AlexK。不,我只做了这段代码,根本不知道我的路由器是如何配置的
标签: c# sockets network-programming