Es folgt der Code (JAVA), der eine Client-Socket-Verbindung akzeptiert und jeder Verbindung einen Thread zuweist.JAVA Multithread-Server-Sockets
ServerSocket m_ServerSocket = new ServerSocket();
while (true) {
java.util.Date today = Calendar.getInstance().getTime();
System.out.println(today+" - Listening to new connections...");
Socket clientSocket = m_ServerSocket.accept();
ClientServiceThread cliThread = new ClientServiceThread(clientSocket);
cliThread.start();
}
Angenommen, es sind 5 Clients verbunden, daher werden 5 Threads ausgeführt.
client 1: threadId 11
client 2: threadId 12
client 3 :threadId 13
client 4 :threadId 14
client 5 :threadId 15
Es sei einer der Clients sendet eine Nachricht "kill-client1", ich Ende Client 1 die Verbindung wünschen und den Faden mit Id 11, so etwas wie dieses töten:
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
while (running) {
String clientCommand = in .readLine();
if (clientCommand.equalsIgnoreCase("Kill-client1")) {
// end the connection for client 1 & kill it's corresponding thread 11
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Wie kann ich das erreichen?
so wollen, dass Sie im Grunde machen für Kunden in der Lage sein, andere – Antoniossss
@Antoniossss Ja, Sir :) Kunden zu töten. –