Следующий код должен получить время из сокета, добавить к нему 6 месяцев и вернуть его в сокет. Вот код, который инициализирует сокеты и серверы:
//open and connect the sockets
ServerSocket ss = new ServerSocket(4444);
System.out.println("1");
Socket sock = new Socket(ss.getInetAddress(),4444);
System.out.println("2");
Socket srv = ss.accept();
System.out.println("3");
Вот код, который показывает серверу, получающему время и добавляющему к нему 6 месяцев (формат времени: ГГГГММДДЧЧММСС).
//send/receive and increment the current time by 6 months
PrintWriter bw = new PrintWriter(sock.getOutputStream());
System.out.println("4");
bw.print(rtime);
System.out.println("5");
//add 6 months to the current time
long ret = Long.valueOf(new BufferedReader(new InputStreamReader(srv.getInputStream())).readLine()) + 600000000;
System.out.println("6");
Переменная rtime, это long
, которая уже объявлена. Код находится в пределах try{}
, за которым следует
catch(Exception e) {
System.out.println(e);
System.exit(-1);
}
Я поместил строки печати в код, чтобы увидеть, где происходит ошибка, так как по какой-то причине программа завершает работу без вывода ошибки. Все номера печатаются до «6». Другими словами, ошибка встречается в строке .readline()
. Я не знаю, что я делаю не так. Любая помощь очень ценится, спасибо.