Добрый день господа. У меня есть два компьютера, с выходом в интернет. На первом, следуя мануалам пишу такой код:
import java.net.*;
import java.io.*;
public class Lied {
public static void main (String args[]) throws IOException{
try(ServerSocket serverSocket = new ServerSocket(11111)){
while(true){
try (Socket socket = serverSocket.accept()){
serveClient(socket);
}
}
}
}
private static void serveClient(Socket socket) throws IOException {
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
while(true){
int request = inputStream.read();
if (request == -1) {
break;
}
outputStream.write(request*request);
System.out.println("Получили число: " + request);
outputStream.flush();
}
}
}
Программа получает через порт 11111 число и, возведя его в квадрат отправляет обратно. С помощью онлайн-сервиса я узнал имя компьютера, на котором написана программа выше. На втором компьютере запускаю:
import java.net.*;
import java.io.*;
public class inet{
public static void main(String args[]) throws Exception{
try(Socket socket = new Socket("93-81-119-229.broadband.corbina.ru",11111)){
OutputStream outputStream = socket.getOutputStream();
outputStream.write(5);
outputStream.flush();
InputStream inputStream = socket.getInputStream();
int response = inputStream.read();
System.out.println(response);
}
}
}
Здесь "93-81-119-229.broadband.corbina.ru" и есть hostname первого компьютера. По каким-то неясным мне причинам вторая программа пытается некоторое время подключиться, и вызывает исключение "Connection time out". Что я делаю неправильно? Так же прошу вас указать необходимую литературу, которая может помочь с освоением темы сетей. Спасибо.