C# 如何获得使用TcpClient连接的基本应用程序?

C# 如何获得使用TcpClient连接的基本应用程序?,c#,.net,tcp,port,C#,.net,Tcp,Port,我试图写一个基本的应用程序,将读取数据的端口。这是我的密码: static void Main(string[] args) { int port = 5600; string server = "MyDevLaptopName"; TcpClient tcpClient = new TcpClient(); tcpClient.Connect(server, port); NetworkStream stream = tcpClient.GetStre

我试图写一个基本的应用程序,将读取数据的端口。这是我的密码:

static void Main(string[] args)
{
    int port = 5600;
    string server = "MyDevLaptopName";
    TcpClient tcpClient = new TcpClient();
    tcpClient.Connect(server, port);

    NetworkStream stream = tcpClient.GetStream();
    byte[] data = new byte[256];
    stream.Read(data, 0, data.Length);

    Console.ReadLine();
}
当我运行上面的应用程序时,我在
tcpClient.Connect
命令中遇到此错误:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应10.90.91.19:5600

我不确定为什么我的计算机不会响应(我对TCP端口等完全陌生)

我是否需要使用其他方式设置它以从TCP端口读取数据?

我检查过的东西:

  • Windows防火墙已完全关闭
  • 错误中列出的IP地址是我的开发机器(我尝试连接的机器)的内部IP地址
  • 我确实有赛门铁克端点保护,但它是由集团策略控制的,我很难关闭它(但如果需要,我可以这样做)
更新:
有一个主框架服务器应该向该端口发送TCP数据。我不控制机器/服务器或它发送数据的方法。我只是试图读取发送到端口的数据

更新II:
主框架实际上是将数据发送到我公司的虚拟机。然后,我使用发现的技术将TCP流量重定向到我机器上的同一端口(我希望我可以在那里读取它)

更新III:

大型机是客户端,我需要成为服务器!。一旦我意识到我的工作正常。

我会尝试使用另一个端口号,您是否也控制服务器?如果是,请尝试执行以下步骤:

正如您将看到的,您可以通过以下方式收听:

namespace TCPServerTutorial
{
  class Server
  {
    private TcpListener tcpListener;
    private Thread listenThread;

    public Server()
    {
      this.tcpListener = new TcpListener(IPAddress.Any, 3000);
      this.listenThread = new Thread(new ThreadStart(ListenForClients));
      this.listenThread.Start();
    }
  }
}
TcpClient client = new TcpClient();

IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);

client.Connect(serverEndPoint);

NetworkStream clientStream = client.GetStream();

ASCIIEncoding encoder = new ASCIIEncoding();
byte[] buffer = encoder.GetBytes("Hello Server!");

clientStream.Write(buffer, 0 , buffer.Length);
clientStream.Flush();
您可以通过以下方式进行连接:

namespace TCPServerTutorial
{
  class Server
  {
    private TcpListener tcpListener;
    private Thread listenThread;

    public Server()
    {
      this.tcpListener = new TcpListener(IPAddress.Any, 3000);
      this.listenThread = new Thread(new ThreadStart(ListenForClients));
      this.listenThread.Start();
    }
  }
}
TcpClient client = new TcpClient();

IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);

client.Connect(serverEndPoint);

NetworkStream clientStream = client.GetStream();

ASCIIEncoding encoder = new ASCIIEncoding();
byte[] buffer = encoder.GetBytes("Hello Server!");

clientStream.Write(buffer, 0 , buffer.Length);
clientStream.Flush();

这看起来很简单,但端口号并不是一个细节,因为有些端口不可用或被防火墙阻止等等…

您的代码就是“客户端”。您需要在另一台机器上运行一个“服务器”,该机器正在侦听您的传入连接。

用于设置“服务器”的代码在哪里(即等待和侦听连接的一方)在端口5600上?什么类型的服务器正在侦听该端口?您可以从其他客户端使用它吗?@Vaccano-您没有发布足够的信息。您需要找出无法连接到服务器应用程序的原因。如果您没有服务器应用程序,则TCP是您想要使用的错误类型的网络连接。@Jon-我用服务器信息更新了我的问题。基本上,这是我公司的一台大型机服务器。该服务器的编程人员告诉我,他将通过该端口上的TCP协议将数据发送到我的机器。我假设我可以连接到该端口并开始读取数据。我可以让服务器使用不同的端口(虽然我不能直接控制它)。我更新了我的问题,以说明服务器是如何设置的。也许我需要编码的是服务器?也许我的主机就像一个客户端,我需要监听它…我会试试你的服务器代码,看看它是否工作。我对服务器和客户端感到困惑(正如我所说,我是TCP通信的新手)。我需要成为服务器,主机作为客户机向我发送数据。一旦我使用了你给我的链接来创建服务器,它就开始工作了。谢谢!