好的,所以當我第一次連接時一切正常。但是,當我再次連接(不停止服務器程序)時,它會顯示「連接被拒絕:連接」。我認爲這是因爲我只接受一次連接,因此我使用一個swing Timer觸發一個動作事件,每10毫秒觸發一次動作事件,它將clientSocket設置爲serverSocket.accept()(clientSocket = serverSocket.accept( );),所以這裏是代碼:多次連接到插座
package org.code;
import java.net.*;
import java.io.*;
public class MainClass {
public static void main(String[] args) {
new MainClass();
}
Socket server = null;
PrintWriter out = null;
public MainClass() {
try {
server = new Socket("192.168.0.104", 4444);
out = new PrintWriter(server.getOutputStream(), true);
out.println("start");
out.close();
server.close();
} catch(Exception ex) {ex.printStackTrace();}
}
}
和:
package org.code;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class MainClass {
public static void main(String[] args) {
new MainClass();
}
ServerSocket serverSocket = null;
Socket clientSocket = null;
BufferedReader in;
public MainClass() {
JFrame frame = new JFrame("Minecraft Server Manager v0.1 Server");
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
try {
serverSocket = new ServerSocket(4444);
clientSocket = serverSocket.accept();
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
if(inputLine.equals("start")) {
System.out.println("Good");
}
if(inputLine.equals("stop")) {
System.out.println("Bad");
}
}
clientSocket.close();
serverSocket.close();
} catch(Exception ex) {System.err.println("Error: " + ex.getMessage());}
}
}
這裏的問題究竟是什麼? – jdotjdot