【问题标题】:TcpClient SocketException .NETTcpClient SocketException .NET
【发布时间】:2010-07-02 06:37:08
【问题描述】:

我的电脑配置为自动获取 IP 地址。当我使用ipconfig /all 时,它会显示如下内容:

Windows IP Configuration

PPP adapter Broadband Connection:

Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 95.38.95.204
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 0.0.0.0

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::64d7:e4ee:ba7e:1ede
IPv4 Address. . . . . . . . . . . : 192.168.72.198
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1

我应该使用95.38.95.204192.168.72.198 作为服务器和客户端的IP 地址吗?

当我使用192.168.72.198时,服务器连接成功,但客户端抛出SocketException,如下所示

 var tcpServer = new TcpClient();
 tcpServer.Connect(new IpAddress("192.168.72.198"), 1986);

连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 192.168.72.198:1986

我在geekpedia上使用了这篇文章http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html

如果有人可以帮助我,谢谢。

【问题讨论】:

    标签: .net c#-4.0 tcpclient


    【解决方案1】:

    如果您在自己的计算机上进行测试,您可以使用127.0.0.1"localhost"

    一般应使用 IPv4 地址 (192.168.72.198)。

    听起来您的服务器尚未在该套接字上运行。

    【讨论】:

    • 谢谢,但文章作者说我们可以使用 192.168.72.198,这应该可以正常工作。但在我的电脑上没有。我需要更改网络设置的任何部分吗?我正在使用 Windows 7,同样当我关闭我的 adsl 调制解调器并获取 ipconfig 命令时,结果什么都没有,并说媒体已断开
    • 我同意 Graphain;该错误最可能的原因是您的服务器进程没有运行。您可以通过运行netstat -a 并在Listening 状态下查找端口1986 来测试它。关于您的评论,您需要一个网络才能拥有网络地址;这就是为什么在您关闭调制解调器时 192.168.72.198 消失的原因。
    • @Stephen 当我在 cmd 上运行 netstate -a 时显示:TCP 192.168.72.198:1986 Sadegh-PC:0 LISTENING 但我的客户端仍然无法连接到这个 ip:port 和 SocketException 被抛出(超时和连接失败)
    • 尝试使用 IPAddress.Any 作为您服务器的 IP。这是服务器的标准做法。
    • 它可能在监听,但它真的在响应吗?如果您在命令提示符下执行telnet 192.168.72.198 1986,并假装自己是客户端并通过键入并按回车键发送客户端将发送的任何内容会发生什么?
    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多