我的测试计算机上有一个简单的程序试图连接到服务器地址,它会因例外而失败。
using System;
using System.Net;
using System.Net.Sockets;
namespace Test
{
class Program
{
static void Main(string[] args)
{
try
{
const string ipaddr = "172.217.5.10";
using (Socket sock = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp))
{
sock.Connect(IPAddress.Parse(ipaddr), 80);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.ReadKey();
}
}
}
这个简单程序的输出是:
System.Net.Sockets.SocketException(0x80004005):尝试以其访问权限禁止的方式访问套接字172.217.5.10:80
在System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)
在System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在System.Net.Sockets.Socket.Connect(IPAddress地址,Int32端口)
在D:.test-projects \ Test \ Program.cs中的HttpClientTests.Program.Main(String [] args):第16行
我系统上的浏览器工作得非常好,我不知道出错是什么问题。 我还使用本机(C ++)代码测试了完全相同的功能,它在VisualStudio中会失败,但是从命令行运行。 在我的系统上编译的代码在我的域中的其他系统上运行得非常好 我正在使用Windows 10和VS2015.2。
我还用Wireshark测试了我的程序,我看到了我的SYN,服务器的SYN ACK,然后是我身边的RST。
有人可以帮我找到这个错误的原因吗?