У меня проблема с сокетом.Эта проблема возникает, когда я запускаю сервер и клиент на одном компьютере, т.е. с помощью параметра «localhost».Но проблема не видна, когда используются разные ПК.Клиент отправляет файл с этими кодами:
output_local.write(buffer, 0, bytesRead);
output_local.flush();
И после этого другим способом я отправляю команду с такими:
outputStream.write(string);
outputStream.flush();
Сервер добавляет команду в конецфайл.Поэтому он думает, что еще не получил команду от клиента.у вас есть идея, что может вызвать эту проблему?Как я могу устранить дефект?ниже приведен метод получения файла на сервере:
while (true) {
try {
bytesReceived = input.read(buffer);
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("exception occured");
break;
}
System.out.println("received:" + bytesReceived);
try {
/* Write to the file */
wr.write(buffer, 0, bytesReceived);
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
total_byte = total_byte + bytesReceived;
if (total_byte >= filesizeInt) {
break;
}
}