我有一個文件傳輸小程序,我在創建一個日誌系統,所以在它初始化的小程序,直到它發送文件和完成將開始打印日誌文件(最初它轉到客戶端的java控制檯),但現在我正在修改它,所以它會轉到服務器,而不是(在服務器中創建一個文件,並開始在文件上寫入)。java服務器發送printstream到端口80或443
它現在工作,我使用端口5000,但我需要打開端口5000的防火牆,因爲打開端口是危險的,我可以使用端口80或443(HTTPS),因爲它無論如何打開文件傳輸?怎麼做?此刻的代碼
例子是
在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的兩個實例都更改? –
@KonstantinNaryshkin其實我不能只是將其更改爲端口80或443,當我嘗試運行我創建它的簡單java服務器時,將拋出java.net.BindException:已在使用的地址:JVM_Bind – Harts
這個錯誤意味着你已經有一個服務器在該端口上運行(可能是一個Web服務器)。你可以讓os告訴你它是什麼(Linux上的'netstat -nap | grep':80「'),決定你是否需要保持服務器運行。如果你這樣做,選擇一個不同的端口。如果不這樣做,請關閉服務器,執行日誌記錄,然後在完成後重新啓動它。 –