0

現在、TcpListener-TcpClientを使用してクライアントを相互に接続し、サーバーに接続するアプリ(通信アプリの一種)を作成しました。(クライアントは相互に接続でき、同時にサーバーにも接続できる必要があります)。

問題は、ユーザーが持っているファイアウォールアプリケーションです。彼らのファイアウォールアプリは、ネットワークの外部からの着信接続を完全にブロックします。

(CreateObject( "HNetCfg.FwMgr")を使用してvbscriptのWindowsファイアウォール構成スクリプトを使用してこれを回避しようとしましたが、ファイアウォールアプリケーションには適用されません!)

私は何をすべきか?回避策はありますか、またはファイアウォールごとにマニュアルを作成する必要があります。

その他の注意事項:

kaspersky、node、zonealarm、...などのファイアウォールアプリケーション

TeamViewerは良い例です。彼らはどうやってそれをしましたか?

クライアントがサーバーに依存することは望ましくありません。サーバーを使用せずに相互に接続できる必要があります。

4

2 に答える 2

0

あなたができることは、クライアントからのインターネット接続をテストし、外部からサーバーまたは他のクライアントに接続しようとすることです。返信がない場合は、ユーザーに「ファイアウォールを使用していますか?」サーバーに「接続しようとしているアプリケーション」

于 2012-05-31T20:02:57.830 に答える
0

すべてのファイアウォールをバイパスできれば、それらを使用しても意味がありません。ソフトウェア ファイアウォールを無効にしても、ルーターがファイアウォールとして機能し、接続試行を転送しない可能性があります。

専用サーバーがあり、クライアントがそのサーバーを介して相互に通信できるようにする場合、各クライアントがサーバーへの発信接続を開始するため、ファイアウォールは問題になりません。

クライアントがサーバーとして機能できるようにする場合、その人はそのアプリケーションがファイアウォールを通過できるようにする必要があります。また、ルーターのポートを開くための UPnP も調べてください。

于 2012-05-31T20:47:51.820 に答える