0

私が直面している問題は、見出しに記載されています。これは私がいる場所です:

  • ポート 61911 で Socket Server を起動して実行します。

    _server.Bind(新しい IPEndPoint(IPAddress.Any, 61911));

  • そして、そのポート (61911) がグローバルに開かれ、サーバー IP アドレスが 192.168.1.2 (私の PC) に設定されます。

  • ファイアウォールとウイルス対策プログラムはうまく処理されます。

  • ソケット サーバーを実行し、 YouGetSignal.comからポート オープン ステータスを取得しました。

写真:

http://img189.imageshack.us/img189/1777/x07w.png

  • そして、^チェック中、ソケット サーバーの応答は良好でした。これは、サーバー im ホスティングへの接続が確立されたことを意味すると思います。

  • しかし、クライアントからアクセスすると、「接続できませんでした...」というエラーが表示されます。

クライアントの接続に使用するコードは次のとおりです。

private static void LoopConnect()
    {
        while (!_client.Connected)
        {
            try
            {

                IPAddress ip = IPAddress.Parse("**PUBLIC IP**");
                IPEndPoint remoteEP = new IPEndPoint(ip,61911);
                _client.Connect(remoteEP);
            }
            catch (SocketException e) { Console.WriteLine(e.Message); }
        }

        Console.WriteLine("Connected!");
    }

そして、サーバーで受け入れを処理するこのコード:

private static void SetupServer()
    {
        Console.WriteLine("Setting up Server.. ");
        _server.Bind(new IPEndPoint(IPAddress.Any, 61911));
        _server.Listen(4);
        Console.WriteLine("Server UP!");
        _server.BeginAccept(new AsyncCallback(AcceptCallBack), null);
    }

    private static void AcceptCallBack(IAsyncResult AR)
    {
        Socket socket = _server.EndAccept(AR);
        _clients.Add(socket);
        socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
        _server.BeginAccept(new AsyncCallback(AcceptCallBack), null);
    }

だから私は私が与えることができる問題に関するすべての情報だと思います..

*マルウェア保護、ファイアウォール、ポート転送に関するすべてが完了しました。*およびポートはで開いていますnetstat -anb

ソリューションを高く評価:)

EDIT : クライアントがリクエストを送信し、サーバーが確認します。しかし、それはクライアントには届かないと思います。そのためには、「内部」からの移植など、ルーターで何か他のことをする必要があります。そんなことがあるものか ???

4

1 に答える 1

1

何が起こるかは次のとおりです。

  1. クライアントがパブリック IP への接続を試行します。
  2. そうすることで、ゲートウェイ(ルーター)に接続します
  3. 内部ではなく外部からのみ開いたため、ルーターはそのポートへのアクセスを拒否します。

アプリケーションをテストするには、ローカル IP (192.168.1.2) を使用してください。展開すると、外部アドレスを使用できます。ルーターの内部からポート転送を開くこともできますが、それはこの回答の範囲外です。

于 2013-07-19T10:17:06.090 に答える