Подключение к ServerSocket с локальной машины
Я довольно плохо знаком с Java, и в настоящее время я экспериментирую с сокетами и буферами.
Я хотел попробовать создать соединение из одного локального Java-приложения и другого. Я использую ServerSocket и Socket.
Серверное приложение имеет поток, который прослушивает соединения:
public void run() {
try{
ServerSocket serverSock = new ServerSocket(62666);
while(doRun){
Socket sock = serverSock.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));
InfoReader.gui.writeToTextArea(reader.readLine() + "\n");
reader.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
"Клиент" просто отправляет строку на сервер (что ж, должно быть, но я не могу заставить ее работать):
try{
Socket sock = new Socket("127.0.0.1",62666);
PrintWriter writer = new PrintWriter(sock.getOutputStream());
writer.print("Connection works!");
}catch(IOException e){
e.printStackTrace();
}
Я уверен, что порт открыт и уже перенаправлен на локальную машину. Я проверил на http://canyouseeme.org/.
Я также попытался использовать мой внешний IP-адрес в качестве IP-адреса сокета в клиенте. Это тоже не сработало.
Любая помощь приветствуется:).
Майк.
1 ответ
Хорошо, тогда как ответ, так что вы можете закрыть вопрос;-)
Добавьте flush() и close() в Writer.
Надеюсь, это поможет.:-)