2011-01-09 7 views
1

私が意味するのは、ビデオゲームのサーバーのようなものです。アプリケーションを実行すると、IPとポートを使ってコンピュータ上にサーバーが設定されます。Javaでインターネットを介した通信

たとえば、1つのホストアプリケーションがIPとポートを持つものを設定し、インターネットにアクセスできる別のコンピュータもIPとポートを入力できるアプリケーションを作成するとしますホストと通信できますか?私は、booleanまたはStringのような簡単なコミュニケーションを意味します。

修正するために必要なセキュリティ上の問題はありますか?

答えて

1

あなたの質問のコンセプトを把握していると思います... 2台のコンピュータをインターネット経由で接続したいのですか?その場合、コンピュータ間の接続を行う「ソケット」と呼ばれるものを使用する必要があります。サーバーのことについては、まず、クライアントは常にサーバーのIP(ダイレクトIPまたはDNS)を知っていなければなりません。クライアントをサーバーに接続できます。 javaページのソケットのチュートリアルはhttp://download.oracle.com/javase/tutorial/networking/socketsです。セキュリティ上の問題については、サーバーがクライアントから来るもの(本当にすべてを意味する)を処理できることを確認する必要があります。つまり、受信するすべてのタイプのデータを受け入れ、そうでないものはすべて拒否しますいう)。あなたがそれを念頭に置いていれば、問題はありません(もちろん、サーバはソケットを制御するためにファイアウォールも持っている必要がありますが、それはあなた次第です)。

+0

ありがとうございました。非常に役立ちます。 –

0

一般に、あなたが望むのはソケットです。ソケットを使用すると、TCPまたはUDP経由でエンドポイントにバイトを送信できます。これは非常に低レベルですが、独自のアプリケーションプロトコルを設計する必要があるため、ややこしいことです。抽象度の高いものを使用したいかもしれません。

Javaソケットでは、整数を文字列としてエンコードして行ごとに送信できるようにストリームインターフェイスが公開されています。そうしないと、DataOutputStreamを使用してラップするよりも魅力的で効率的です。

0

次の問題を処理するとセキュリティが強化されます。

  1. ルータをお持ちの場合、ルーティング用に異なるポートを設定してください。

    例:ポート6001でサーバを実行している場合は、公開される仮想ポート9001をマップします。

  2. DDOS

  3. IP制限 - すべてのユーザーがあなたのマシンにアクセスできるわけではありません!

  4. ルータファイアウォールを有効にすると、ほとんどの問題が解決します。

関連する問題