C# 可以ping网络设备,但没有tcp连接

C# 可以ping网络设备,但没有tcp连接,c#,networking,windows-7,tcp,tcpclient,C#,Networking,Windows 7,Tcp,Tcpclient,我构建了一个windows服务,它使用IP和端口号通过tcpClient连接到本地网络设备。网络设备输出数据,我接收到读取。已经为多个设置工作了数月(始终为1台机器->1个网络设备) 最近几乎所有的连接尝试都失败了! 奇怪的是,我仍然可以通过命令提示符ping设备。 在putty中,不传输任何数据。 使用netstat时,我没有看到列出任何远程地址 “我的服务”中有以下错误日志消息: Exception by Establishing TCP/IP Connection@ServiceName

我构建了一个windows服务,它使用IP和端口号通过tcpClient连接到本地网络设备。网络设备输出数据,我接收到读取。已经为多个设置工作了数月(始终为1台机器->1个网络设备)

最近几乎所有的连接尝试都失败了! 奇怪的是,我仍然可以通过命令提示符ping设备。 在putty中,不传输任何数据。 使用netstat时,我没有看到列出任何远程地址

“我的服务”中有以下错误日志消息:

 Exception by Establishing TCP/IP Connection@ServiceName System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond XXX.XXX.XXX.XX:XXXX  (translated into english ;D)
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
   at System.Net.Sockets.TcpClient.Connect(IPEndPoint remoteEP)
   at System.Net.Sockets.TcpClient.Connect(IPAddress address, Int32 port)
这个网络相关吗?或者它与windows更新或其他什么有关

我的最新工作代码

  public void readDevice()
        {

            TcpClient Client = new TcpClient();
            System.Net.IPAddress ip = System.Net.IPAddress.Parse(ConfigurationManager.AppSettings["IP"]);

                /*
                * Establishing TCP/IP Connection
                */
                try
                {
                    // IP and Port number  
                    log.Debug("Try Client.Connect:" + ip);
                    Client.Connect(ip, 5000);

                }
                catch (Exception ex)
                {
                    /* Handle the socket exception.... */
                   //this error is thrown
                    log.Debug("Exception by Establishing TCP/IP Connection@ServiceName "+ ex);
                }

                NetworkStream MessageStream = Client.GetStream();

      //Magic be here

        }
我真的被卡住了,因为ping是可连接但不可连接的设备。
非常感谢任何帮助

我不知道这会有多大帮助,但听起来像是网络问题。如果它停止工作,代码方面没有任何变化,我会开始在那里进行调查

我的一台服务器出现了这样的问题,问题是端口转发表出错,所以我试图连接到错误的机器。我刚搞定了转发,然后就怪我了!一切都很顺利


我希望您的问题也很容易解决。

乍一看,这听起来像是防火墙问题,您能用telnet连接到端口吗?虽然“ping”和TCP连接最终都使用IP协议,但它们的处理方式往往不同。防火墙允许ping消息通过但阻止其他类型的通信是很常见的。您最近是否更改了任何ip地址,如默认网关。。?您的网络是什么样的拓扑结构?IP地址不变,网关不变。这是一个标准的家庭网络,两个设备通过局域网连接。无法通过telnet连接@GeraldSchneider。如下文所述:我甚至需要在路由器中打开一个端口进行LAN通信吗??我不记得以前这样做过……我通过远程桌面控制这些设备和机器,不喜欢为技术问题给家庭带来太多麻烦。结果是:只需断开并重新连接网络设备就可以修复它。谢谢大家,我真的不明白。我似乎无法打开这个端口。另一方面:这些都是通过局域网和标准家庭路由器连接的本地网络设备——当仅在局域网内通信时,是否有必要在路由器中为它们打开端口?@Timo Jak:是的,有时你必须确保端口上的数据进入正确的机器,即使是在你的局域网上。您可以获取wireshark或其他端口嗅探器的副本,并查看它是否在目标计算机上打开。那可能会产生一个a-ha!片刻