我正在尝试在两台PC(我的和朋友的)之间建立TCP连接。现在,我知道逻辑非常简单,但是我想检查连接是否成功。 我的朋友启动了服务器,并通过whatismyip.com为我提供了IP地址,但是当我输入该IP时,出现超时错误。 我不太确定这是在另一个LAN中建立与PC的连接的正确方法。会很高兴为您提供任何帮助\建议\外部链接。 下面是我的代码:
internal class Server
{
private TcpListener m_server;
private readonly int m_port = 8888;
public void Start()
{
try
{
m_server = new TcpListener(IPAddress.Any,m_port);
m_server.Start();
Console.WriteLine("Server started");
while(true)
{
TcpClient client = m_server.acceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] data = new byte[256];
int bytes = stream.Read(data,data.Length);
string message = Encoding.UTF8.GetString(data,bytes);
Console.WriteLine("From client: " + message);
stream.Close();
client.Close();
if (message == "Shutdown")
{
m_server.Stop();
}
}
}
catch(Exception e)
{
Console.WriteLine("Server: " + e.Message);
}
finally
{
m_server?.Stop();
}
}
}
internal class Client
{
private System.Net.Sockets.TcpClient m_client;
private readonly string m_ip = "";
private readonly int m_port = 8888;
private readonly string m_message = "Shutdown1";
public void Start()
{
try
{
m_client = new System.Net.Sockets.TcpClient();
m_client.Connect(m_ip,m_port);
NetworkStream stream = m_client.GetStream();
byte[] data = Encoding.UTF8.GetBytes(m_message);
stream.Write(data,data.Length);
stream.Close();
m_client.Close();
Console.WriteLine("Done");
Console.ReadKey();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
}
}
}