2

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);
4

1 に答える 1

0

簡単なコメントを使用してこの情報を提供できればと思いますが、最近 SO に参加したばかりなのでできません。ポートが転送されていることを確認する必要があります ( http://portforward.com/がポート転送に役立ちます)。この使いやすいポート チェッカーを使用する方法がわからない場合は、http://www.yougetsignalを使用できます。 .com/tools/open-ports/ .

于 2013-09-22T21:38:17.080 に答える