1

ローカルマシンでサーバーを実行して同じマシンで接続することはできますが、インターネットを介して別のコンピューターからサーバーに接続しようとすると、サーバーにアクティビティの兆候がなく、サーバーからの応答もありません。私がテストしているコンピューター上で。XPとVistaの両方を試し、ファイアウォールをオフにし、ポートを開き、管理者として実行しました。何も機能していません。:(

着信接続を受け入れるために使用しているコードは次のとおりです。


int port = 3326;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                TcpListener listener = new TcpListener(new IPEndPoint(IPAddress.Any, port));
                listener.Start();
                Console.WriteLine("Server established\nListening on Port: {0}\n", port);
                while (true)
                {
                    socket = listener.AcceptSocket();
                    socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, outime);
                    socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
                    socket.DontFragment = true;
                    NewConnection pxy = new NewConnection(socket);
                    Thread client = new Thread(new ThreadStart(pxy.Start));
                    client.IsBackground = true;
                    client.Start();
                }
}

4

4 に答える 4

8

問題はコンピューターではなくルーターにあると思います。パケットがインターネットから来る場合、特定のサーバーにルーティングする必要があります。ポートのトラフィックを3326サーバーにリダイレクトするようにルーターを構成する必要があります。

于 2008-10-12T17:35:28.507 に答える
3

上位の接続をブロックしている何かがある可能性があります。LAN 上の別のホストから接続してみてください。それができれば、OS 自体が接続をファイアウォールで保護していません。

あなたまたはあなたの ISP が NAT ルーターを実行している場合、あなたのマシンはおそらく公的にアクセス可能なアドレスを持っていません。その場合、それに直接接続することは不可能です。

NAT ルーターがない場合は、何かがまだアップストリームの接続をブロックしている可能性があります。

于 2008-10-12T17:57:41.803 に答える
0

私は真剣です:多くの ISPは、ユーザーが自宅の接続を Web サーバーとして使用することを阻止するために積極的に取り組んでいます。時間をかけすぎる前に、彼らに電話することをお勧めします。

于 2008-10-12T18:35:09.357 に答える
-1

自宅でホストしようとしている場合は、ISPが制限している可能性があります。

于 2008-10-12T17:33:17.233 に答える