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 に接続することです。どうやってやるの ?
また、これは LAN で 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);