Общаться с компьютером, который не находится в той же сети
Я хочу общаться между двумя компьютерами, которые не находятся в одной сети, я пытался использовать сокеты, но я нашел только учебные пособия и примеры для общения в одной сети.
Я попытался выполнить поиск по stackru, но у меня не было четкого представления о том, что искать.
Я хочу отправить текст в двух направлениях (чат).
Дело в том, что мне непонятно, что я должен использовать или сделать, поэтому я не могу быть более ясным, чем сказать, что хочу отправить двусторонний текст (возможно, дату) для chatapp, просто чтобы поучиться у, -редактировать-
2 ответа
Для связи между двумя машинами они должны находиться в одной расширенной сети. Единственный другой вариант - сохранить данные на внешние накопители, например, на USB-накопители, и вы можете подключиться ко второму компьютеру и загрузить его.
Вы можете использовать сокеты для связи с любым другим компьютером, имеющим подключение к Интернету, при условии, что ваш брандмауэр (-ы) настроен для разрешения подключения. Весь смысл брандмауэра заключается в предотвращении несанкционированного доступа. Я подозреваю, что это ваша настоящая проблема. Если ваши брандмауэры препятствуют доступу, вы не сможете обойти это, используя Java (взлом альтернатив Google Network;)
Другим вариантом является использование службы, такой как электронная почта, если два компьютера не могут напрямую общаться друг с другом (они все равно должны быть подключены к одной сети). Это гораздо сложнее, чем использование прямого соединения, но это можно сделать.
Вместо этого я предлагаю вам правильно настроить брандмауэр (ы), и вы сможете использовать простые сокеты.
Вы должны получить внешние IP-адреса (есть сайты, которые при посещении дают вам этот IP-адрес) и надеяться, что брандмауэр разрешает связь. Обычно следует использовать порт выше 1000. Должны быть одноранговые библиотеки.
Другой способ - через SSH на одном компьютере (JSch - это одна библиотека Java для SSH).
Самый простой способ - это обмен электронной почтой: API javax.mail компактен, но не самый простой. (Особенно вы можете легко удалить все письма, как я делал однажды.)