#java
#java
Вопрос:
Я всегда получаю сообщение, не знаю о хосте: taranis. при запуске программы echoclient. вот программа ниже
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
echoSocket = new Socket("taranis",3218);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
"the connection to: taranis.");
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " in.readLine());
}
out.close();
in.close();
stdIn.close();
echoSocket.close();
}
}
Комментарии:
1. Кто такой Таранис? есть ли у вас компьютер с таким именем в вашей сети?
2. Эмм, ну… это означает, что нет такого хоста, как «taranis». Вам необходимо использовать допустимое имя хоста.
3. К вашему сведению: этот код, похоже, взят отсюда: download.oracle.com/javase/tutorial/networking/sockets /…
Ответ №1:
Вам необходимо использовать действительное имя хоста или действительный IP вашего сервера (при условии, что он у вас есть) при инициализации вашего сокета ( new Socket("taranis",3218)
). Было бы здорово воспользоваться этими руководствами (как указано icktoofay), но особенно когда дело доходит до работы в сети, вы должны убедиться, что у вас есть соответствующее приложение, запущенное на другой стороне, и что параметры соответствуют ему. IP и порт обычно меняются от компьютера к компьютеру и от приложения к приложению.