4

サーバーのポートで7761を実行し、IPを10.2.110.43とすると、ポート7761での接続を待機しているさまざまなサーバーで実行され、そのポートにASCII形式でデータを書き込むクライアントが多数あります。

サーバーソケットでclient-ipadressを確認してから、クライアントからの接続を受け入れるようにします。

それを行う方法はありますか?

4

3 に答える 3

5

の下で実行してもかまわずSecurityManager、IP アドレスのリストが静的である場合は、security.policyファイルを介してこれを実行できます。"accept"接続を受け入れたい IP アドレスのみにSocketPermission を付与するだけです。ただし、別の回答で提案されているように、コードまたはファイアウォールで実行することをお勧めします。

于 2012-10-25T06:27:27.970 に答える
5

次のコードを見ると、 の前後 accept()で対応するアドレス確認できません。

Socket client = serverSocket.accept()
if( acceptedClients.contains( client.getInetAddress()) {
   ...
}
else {
   client.close();
}

acceptedClientsよく知られている InetAddress のコレクション。

于 2012-10-25T06:07:11.657 に答える
3

特定の IP からのものでない限り、接続を Java に到達させたくない場合はServerSocket#accept()、これを行うようにファイアウォールを構成する必要があります。

接続が確立された後はいつでも IP アドレスを検証し、正しい IP からのものでない場合はすぐに閉じることができます。

于 2012-10-25T06:09:16.533 に答える