Java-сокет клиент для сервера в разных сетях.

Пожалуйста, не так, как для логики, но вот решение, которое дает мне те же результаты. Измените .Find строку на:

Set c = .Find(what:=lookupRange.Value2, after:=.Cells(1), LookIn:=xlValues, LookAt:=xlWhole)

и дополнительно измените .FindNext на:

Set c = .Find(what:=lookupRange.Value2, after:=c, LookIn:=xlValues, LookAt:=xlWhole)

. Обратите внимание, что диапазон tableRange должен иметь названия столбцов. Если нет, то порядок результатов не будет ожидаться с первого взгляда.

Дополнительное (EDITED) объяснение для последнего предложения. Если у вас есть таблица этого типа:

    |  A  |  B  |  C  |  D  |
  --+-----+-----+-----+-----+
  1 | ABC    1     2     A
  2 | ABC    3     4     B
  3 | ABC    5     6     C

при поиске ABC в range("A1:D3") для получения данных из столбца D вы получите результат: BCD. Чтобы получить ABC, в первой строке должны быть заголовки столбцов.

0
задан James 13 July 2018 в 11:20
поделиться

2 ответа

Сервер должен иметь открытый IP-адрес, чтобы клиент мог подключиться к нему. Или вам нужно VPN по этим сетям (так что сервер доступен из сети клиента).

1
ответ дан alaster 17 August 2018 в 13:04
поделиться

Ваша проблема не в Java. Это действительно о том, как работает сеть / адресация IPv4 / IPv6.

Сетевой диапазон 10.0.0.0/24 зарезервирован для частных сетей; см. статью «Личная сеть» Википедии .

Если на сервере есть адрес 10.xx.xx.xx, а ваш клиент находится в другой сети, то это просто невозможно для вашего клиента для непосредственного подключения к серверу. Сеть вашего клиента просто не может маршрутизировать пакеты в сеть сервера.

(Действительно, есть миллионы сетей по всему миру, которые используют адреса 10.xx.xx.xx. IP-адрес вашего сервера не уникален ... кроме как в контексте частной сети, к которой он подключен. из множества возможных серверов с IP-серверами (скажем) 10.42.42.42 должны быть отправлены пакеты клиента?)

Возможные решения:

  • Дайте серверу необходимо публичное IP-адрес.
  • Настройте третий сервер с общедоступным IP-адресом, который также находится в частной сети, и запустите какой-то сервис для туннельного трафика на сервер. VPN - один из способов сделать это.
2
ответ дан Stephen C 17 August 2018 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: