无法建立连接,因为目标计算机主动拒绝它 - Socket C#

时间:2012-01-16 21:24:33

标签: c# .net sockets network-programming tcpclient

大家好我正在尝试在c#中构建一个服务器客户端应用程序。它正在本地工作,但我想通过互联网工作,当我输入我的ip时出现此错误:

No connection could be made because the target machine actively refused it

检查我的防火墙已关闭。

这是我的代码。我希望你能帮忙......

enter image description here

5 个答案:

答案 0 :(得分:1)

测试连接时,几乎没有简单的基本测试步骤。

  • 尝试ping目标计算机
  • 如果目标计算机是本地计算机,则如果所有其他地址都失败则使用127.0.0.1地址
  • 停用防火墙
  • 检查服务器服务/应用程序是否已启动
  • 尝试telnet到该服务的地址和端口以查看端口是否已打开
  • 确保没有其他应用程序将端口保持打开状态。您可以使用netstat实用程序
  • 执行此操作

在您的具体情况下,我认为您正在尝试连接到您的路由器,而不是您正在托管应用程序的计算机。在命令提示符下执行ipconfig /all以查看您的计算机所具有的所有IP地址。

答案 1 :(得分:1)

  

大家好我正在尝试在c#

中构建服务器 - 客户端应用程序

您是否了解networkComms.net,特别是展示最基本功能here的简短示例?这是专门为在c#中编写服务器 - 客户端应用程序的人编写的,并且考虑到您可能遇到的大部分问题已经解决,这可能会为您节省一些时间。

答案 2 :(得分:0)

你确定可以到达你的目标机器吗?如果它的服务器直接位于互联网上,很可能服务器应用程序没有运行或被机器阻止(或者托管公司有时需要打开一个额外的防火墙,比如亚马逊)。如果它只是另一台机器通过ISP连接,那么它很可能会通过NAT,因为它会碰到你的路由器,你不能轻易地直接连接。

答案 3 :(得分:0)

该链接具有作为FTP的Socket编程的完整示例。程序检查文件的大小,如果大于1MB,它将拆分文件并合并到目标文件夹。

PS:你的代码不是你能得到的最好的代码。它可以有很多改进。它来自我之前没有更新过的旧博客。 http://vinayhoskere.blogspot.com/2010/11/file-transfer-using-socket-programming.html

希望它有所帮助。

答案 4 :(得分:0)

您似乎正在接触目标计算机,但没有任何东西可以处理您的连接。