2012-05-02 9 views
0

私はファイル転送アプレットを持っていますが、ログ記録システムを作成しているので、初期化時にアプレットでファイルを送信して終了するとログファイルの印刷が開始されます(もともとはクライアント側のJavaコンソールに行きますが)今は変更していますので、代わりにサーバーに行き(サーバーにファイルを作成してファイルに書き込む)ようにします。javaサーバーはprintstreamをポート80または443に送信します

私はポート5000を使用していますが、オープンポートは危険ですので、ファイアウォールを開く必要があります。ファイル転送のためにポート80または443(HTTPS)を使用できますか?どうやってするの?現時点では、コードの

の例では、Javaアプレットで

である私は、この

のような単純なJavaサーバーを作成し、サーバー上ながら

handler = new SocketHandler("xxx.xxx.xxx.xx", 5000); 
//on different area of the file there will be something like 
log("starting the applet"); 
log("sending email"); 
... 

があるでしょう

public class ThreadedEchoServer { 
    // using port 5000 
    static final int PORT = 5000; 

    public static void main(String args[]) { 
     ServerSocket serverSocket = null; 
     Socket socket = null; 

     try { 
      serverSocket = new ServerSocket(PORT); 
     } catch (IOException e) { 
      e.printStackTrace(); 

     } 
     while (true) { 
      try { 
       socket = serverSocket.accept(); 
      } catch (IOException e) { 
       System.out.println("I/O error: " + e); 
      } 

      // new thread for a client 
      new EchoThread(socket).start(); 
     } 
    } 
} 
+0

あなたのエラーは何ですか?あなたのコードで5000から80の両方のインスタンスを変更するだけの理由はありませんか? –

+0

@ ConstantinNaryshkin実際には、ポート80または443に変更することはできません。作成する単純なJavaサーバーを実行しようとすると、java.net.BindExceptionがスローされます。アドレスはすでに使用中です。JVM_Bind – Harts

+0

このエラーは、すでにそのポート(おそらくWebサーバー)で稼働しているサーバーを持っています。あなたはそれが何であるかをOSに尋ねることができます( 'netstat -nap | grep":Linuxでは80 ")、サーバを稼働させ続ける必要があるかどうかを決定します。そうした場合は、別のポートを選択してください。そうでない場合は、サーバーをシャットダウンし、ログを作成して、完了後に再起動してください。 –

答えて

1

あなたは本当にポート80とポート443の使用について考えるべきではありません。これらは接続を受信するためのポートです。これらのポートの1つで接続が選択されると、要求は実際には別のポートにリダイレクトされて処理されます。したがって、これらを使用して書き込みを行うと、着信する通信がブロックされます。それは今働いて

+0

いくつかのこと:1.私は、彼がそのポートで他の接続を受け入れないと仮定します。 2.彼がTCP(おそらく)を使用している場合、クライアントを接続すると、接続は自動的にいくつかの高いポートに移動し、新しい接続を受信するために80を解放します。 –

1

、私はポート5000を使用していますが、開くポートは危険ですので、私は、ポート5000のファイアウォール を開く必要があり、私はちょうどポート80 または443(HTTPS)を使用することができますか?どうやってするの?

オープニングポート5000は、ポート80または443を開くよりも危険ではありません。(ポートを変更することは、数値を変更してもそれ以上の効果はありません)。

+0

いいえ、ポート80と443は既に開かれていますが、そのポートを使用しているので、そのポートを使用してはいけません。 – Harts

+0

これらのポートは、ファイアウォール。ファイアウォールを制御する場合は、競合を避けるために別のポートを使用することをお勧めします(これらのポートはHTTPとHTTPSでよく使用されるため)。 – erikxiv

関連する問題