我正在尝试编写一个从端口读取数据的基本应用程序。这是我的代码:
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端口读取数据?
我检查过的事情:
更新
有一个主框架服务器应该将TCP数据发送到该端口。我不控制该机器/服务器或它发送数据的方法。我只是想读取发送到端口的数据。
更新II:
主框架实际上是将数据发送到我公司的VM。然后我使用找到here的技术将TCP流量重定向到我机器上的同一个端口(我希望我可以把它读掉)。
更新III:
大型机是客户端,我需要成为服务器!一旦我意识到我的工作正常。
答案 0 :(得分:2)
我会尝试使用其他端口号,您是否也控制了服务器?如果是这样,请尝试按照以下步骤操作:
C# Tutorial - Simple Threaded TCP Server
你会看到那里你可以这样听:
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();
它似乎微不足道,但它是,但端口号不是一个细节,因为一些端口不可用或阻止防火墙等...
答案 1 :(得分:0)
您的代码是“客户端”。您需要在另一台正在侦听传入连接的计算机上运行“服务器”。