Вот мой код для серверной стороны:
@Override
public void run(){
String message;
String command;
String[] arguments;
try{
BufferedReader inStream = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
while(online){
message = inStream.readLine();
if(message == null)
continue;
if(message.charAt(0) == '/'){
int endOfCommandIndex = message.indexOf(' ');
command = message.substring(1, endOfCommandIndex);
arguments = message.substring(endOfCommandIndex + 1).split(" ");
if(command.equals("login")){
setUserName(arguments[0]);
setName(arguments[0]);
sendMessage(this, "Connected");
}
//....
}
}
}
Как упоминалось в заголовке, поток застревает при чтении из InputStream сокета (я проверил с помощью JDB, и это не условное ожидание, потому чтокажется, он все еще "работает").
Я попытался записать строку в сокет, но это не меняет его состояние вообще.Я пытаюсь создать похожее на чат локальное приложение, и я довольно новичок в сокетах и потоках.Заранее спасибо.
Для клиентской стороны:
String msg;
try{
while(!((msg = stdIn.readLine()).equals("/quit")))
toServer.println(msg);
}
catch(IOException e){
e.printStackTrace();
}
Если кто-то захочет просмотреть весь мой код, здесь он размещен на github