私はファイル転送アプレットを持っていますが、ログ記録システムを作成しているので、初期化時にアプレットでファイルを送信して終了するとログファイルの印刷が開始されます(もともとはクライアント側の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();
}
}
}
あなたのエラーは何ですか?あなたのコードで5000から80の両方のインスタンスを変更するだけの理由はありませんか? –
@ ConstantinNaryshkin実際には、ポート80または443に変更することはできません。作成する単純なJavaサーバーを実行しようとすると、java.net.BindExceptionがスローされます。アドレスはすでに使用中です。JVM_Bind – Harts
このエラーは、すでにそのポート(おそらくWebサーバー)で稼働しているサーバーを持っています。あなたはそれが何であるかをOSに尋ねることができます( 'netstat -nap | grep":Linuxでは80 ")、サーバを稼働させ続ける必要があるかどうかを決定します。そうした場合は、別のポートを選択してください。そうでない場合は、サーバーをシャットダウンし、ログを作成して、完了後に再起動してください。 –