Я делаю сервер и клиент с сокетами, могу подключить их, когда пишу 127.0.0.1 или "localhost". Однако, если я напишу свой общедоступный IP-адрес, клиент не сможет подключиться к серверу. Как я мог это сделать?
Серверная программа:
public static void main(String[]args) throws IOException {
int puerto = 6000;
ServerSocket servidor = new ServerSocket(puerto);
System.out.println("Escuchando en: " + servidor.getLocalPort());
Socket cli1 = servidor.accept();
System.out.println("Un cliente se ha conectado.");
servidor.close();
}
Клиентский:
public static void main(String[]args) throws UnknownHostException, IOException {
String Host = "aaa.bbb.ccc.ddd";
int puerto = 6000;
Socket cliente = new Socket("Host", puerto);
InetAddress i = cliente.getInetAddress();
System.out.println("Puerto Local: " + cliente.getLocalPort());
System.out.println("Puerto Remoto: " + cliente.getPort());
System.out.println("Host Remoto: " + i.getHostName().toString());
System.out.println("IP Host Remoto" + i.getHostAddress().toString());
cliente.close();
}
Как я могу соединить клиент и сервер с моим общедоступным IP-адресом?
На нем должно быть написано new Socket(Host, ...
(без кавычек).
Хорошо, спасибо большое, я попробую это сделать, я действительно не очень разбираюсь в сети, хотя
Это не имеет отношения к сетям. Если ваш код использует "Host"
, вы подключаетесь к "Хосту" вместо ссылки на переменную Host
.
да, я знаю, что хост находится между "", там я написал IP-адрес, который пытался использовать, но я изменил его, прежде чем вставил его сюда в Host, чтобы вы могли знать, что именно туда я отправляю IP
Вопросы по настройке сети следует направлять на Ошибка сервера.
Это не столько вопрос программирования, сколько вопрос настройки сети. У вас, вероятно, есть маршрутизатор, который позволяет вам использовать ваше общедоступное Интернет-соединение между несколькими устройствами. Если это так, вам нужно дать ему правило, которое гласит, что любое соединение с портом X должно идти к машине Y. Однако StackOverflow не может указать вам, как это сделать.