Napisałem prostą klasę serwera:
class Server {
ServerSocket s;
public void start() throws IOException {
try {
s = new ServerSocket(8189);
} catch (IOException e) {
e.printStackTrace();
}
while (true) {
Socket incoming = s.accept();
new User(s, this);
// .....
}
}
}
class User implements Runnable {
Server server;
Socket socket;
public User (Socket socket, Server server) {
this.server = server;
this.socket = socket;
}
public void run() {
try {
InputStream inStream = socket.getInputStream();
Scanner in = new Scanner(inStream);
while (true) {
System.out.println("A");
String line = in.nextLine(); // W TYM MIEJSCU WĄTEK SIĘ ZATRZYMUJE
System.out.println("B");
}
} catch (Exception e) {}
}
}
Klient bez problemu łączy się z serwerem - otrzymuje od niego informacje itp. Problem jednak w tym, żesam nie może wysłać żadnej informacji do serwera. W listeningu powyżej zaznaczyłem miejsce, w którym wątek Usera się zatrzymuje.
Czy ktoś ma jakiś pomysł, co jest nie tak? Wygląda na to, że w tej linijce:
in.nextLine();
program w nieskończoność czeka na dane i ich nie odbiera