我正在使用Microsoft提供的示例来学习如何在C#中使用TCP服务器。对于TCPListener,我使用此http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx,对于TCPCLient,我使用此http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspx(示例位于页面底部)。
到目前为止,我已设法连接并向连接到同一路由器的其他PC发送消息。我现在想要的是将它连接到LAN网络外的PC。我怎么能这样做?
我还应该提一下,这是我用来连接局域网中PC的方式:
服务器端:
public string LocalIPAddress()
{
IPHostEntry host;
string localIP = "";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
localIP = ip.ToString();
break;
}
}
return localIP;
}
private void Form1_Load(object sender, EventArgs e)
{
TcpListener server = null;
try
{
// Set the TcpListener on port 13000.
Int32 port = 13000;
String localAddrString = LocalIPAddress();
Console.WriteLine(localAddrString);
IPAddress localAddr = IPAddress.Parse(localAddrString);
// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);
// Start listening for client requests.
server.Start();
} }
在客户端:
Int32 port = 13000;
String server = "192.168.X.X"; // here I manually introduce the IP provided by the server in the console
TcpClient client = new TcpClient(server, port);
答案 0 :(得分:0)
我希望我能用一个简单的评论来提供这些信息,但我不能因为我最近才加入SO。如果您不知道如何使用这个易于使用的端口检查程序,则应确保转发端口(http://portforward.com/将帮助您向前移动):http://www.yougetsignal.com/tools/open-ports/。