Hallo Leute,
ich hab ein Problem mit einem Mutlithread TCP Server, der verschiedene Nachrichten auf einmal empfagen können soll. Macht er nur nicht. Hier ist der relevante Code:
Der Listen Thread
der Handler Thread
Wenn ich aber zur gleichen zeit 2 Verbindungen aufbauen will, kommt die Fehlermeldung beim Sender
Was mache ich falsch? Fehlt was? Schliesse ich einen Socket nicht?
Danke für Hinweise,
Daishi1002
ich hab ein Problem mit einem Mutlithread TCP Server, der verschiedene Nachrichten auf einmal empfagen können soll. Macht er nur nicht. Hier ist der relevante Code:
Der Listen Thread
Code:
while (true) { //loop for connections
try {
dispatcherSocket = new ServerSocket(listenPort);
while (true) {
new Connection(dispatcherSocket.accept()).start();
log.debug("new message, starting handler");
}
} catch (IOException e) {
log.error("i/o error");
System.exit(-1);
}
der Handler Thread
Code:
public Connection((Socket connection) {
handlerSocket = connection;
line="";
msgString="";
}
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(new GZIPInputStream(handlerSocket.getInputStream())));
line = in.readLine();
while ( line!=null) {
msgString = msgString + line;
line = in.readLine();
}
in.close();
handlerSocket.close();
} catch (IOException e) {
log.error("I/O Error");
e.printStackTrace();
}
Wenn ich aber zur gleichen zeit 2 Verbindungen aufbauen will, kommt die Fehlermeldung beim Sender
java.net.BindException: Address already in use: connect
Was mache ich falsch? Fehlt was? Schliesse ich einen Socket nicht?
Danke für Hinweise,
Daishi1002