正常に動作するクライアント/サーバー ソケット通信プログラムを書き終えました。今、サーバーへの複数のクライアント接続を一度にできるようにする方法を見つけようとしています。私は周りを見回しましたが、これを行うにはいくつかの異なる方法があるようです。だから私はあなたたちに助け/提案を求めるためにここに来ました.
私のサーバー:
public class Server {
private ServerSocket serverSocket = null;
private Socket clientSocket = null;
public Server() {
try {
serverSocket = new ServerSocket(7003);
} catch (IOException e) {
System.err.println("Could not listen on port: 7003");
System.exit(1);
}
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.err.println("Accept failed");
System.exit(1);
}
}
public void startServer() throws IOException {
PrintWriter output = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine, outputLine;
outputLine = "Connected to Server";
output.println(outputLine);
while ((inputLine = input.readLine()) != null) {
// This just determines users input and server ruturns output based on that
outputLine = this.getServerOutput(inputLine);
output.println(outputLine);
if (outputLine.equals("Bye"))
break;
}
output.close();
input.close();
clientSocket.close();
serverSocket.close();
}
}
コンストラクターにスレッドを作成させる必要がありますstartServer()
か、それとも run メソッドになりますか?