Что нового

Отсутствие соединения Клиент-Сервер через Wifi соединение

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Есть не большая проблема, собираю клиент - сервер, при локальном соединении они работают, при подключении через интернет по ip - отказываются, все дело в том что ADSL у меня работает через Wifi чтобы с ноутбуком удобней было ходить по комнатам ;D, при соединении ADSL непосредственно к ноутбуку, макрос @IPAdress2 показывает мой Ip адрес, при подключении ADSL --> Wifi --> ноутбук, ip адрес пропадает и выдаёт по нулям, как тогда работают Skype, Mail? ведь сервер должен отослать данные на мой Ip?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
ADSL не может работать через Wi-Fi, т.к. это немного разные вещи. Более того, ADSL нельзя подключить непосредственно к ноутбуку, т.к. в ноутбуке банально нет ADSL модема. ADSL - это технология передачи данных через телефонную розетку (RJ-11).

У тебя схема должна выглядеть так (если это действительно ADSL): RJ-11 - Модем (он же роутер с Wi-Fi) - компьютеры (по витой паре или Wi-Fi неважно).
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Ладно, у меня есть маршрутизатор Dlink DSL-2500, подключенный к телефону, от маршрутизатора идёт LAN шнур, который подключается в JF разъём ноутбука, для удобства переноса ноутбука из комнаты в комнату я приобрёл Wifi роутер, теперь LAN шнур от маршрутизатора подключен к Wifi роутеру, а ноутбук соединяется с маршрутизатором через Wifi соединение.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
@IPAddress... показывают IP установленных сетевых адаптеров, т.е. адреса компьютеров в локальной сети, например 192.168.1.1, 192.168.1.2 и т.д. Внешний IP, тот, с которым ты светишься в интернете находится за пределами роутера и, как правило, назначается провайдером.

Обычно в ноутбуке стоит три сетевых адаптера - Local Network, Wi-Fi и Bluetooth. Соответственно @IPAddress1, @IPAddress2 и @IPAddress3 будут содержать IP этих адаптеров.

Почему @IPAddress2 у тебя содержит нули? Потому что это не адрес Wi-Fi адаптера, а, например, адрес Local Network. По умолчанию у тебя стоит автоматическое получение IP (DHCP), а так как эта сеть не используется, то и IP не существует.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Да именно так у меня присвоен DHCP тип адреса, но как тогда работают Skype и Mail, а я не могу связать Клиента и сервера?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Как ты хочешь связать? По внутренней сети или внешней? Для внутренней используй локальные адреса, для внешней - внешний IP, выданный провайдером. Еще, возможно, придется открыть соответствующие порты на роутере.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Хочу связать внешне, откуда например Skype берёт мой IP, в онлайн сервисах типа 2ip.ru показывает мой Ip адрес, при попытке подключения клиента к серверу по этому ip - ни чего не происходит, данные не отправляются и не принимаются, по внутренней сети все работает.
Да и ещё, я использую для подключения порт 8080, может в портах всё дело, какой нужно использовать?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Внешний IP можно узнать с помощью _GetIP() или так (проще и быстрее):

Код:
ConsoleWrite(StringRegExpReplace(BinaryToString(InetRead('http://checkip.dyndns.com', 1)), '.+?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).+\s', '\1') & @CR)


Viktor1703 сказал(а):
...при попытке подключения клиента к серверу по этому ip - ни чего не происходит, данные не отправляются и не принимаются, по внутренней сети все работает.

Нужно открыть соответствующий порт(ы) в Windows Firewall и на роутере. По умолчанию все пакеты приходящие без запроса игнорируются. Для теста портов можешь воспользоваться этим сервисом.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Сейчас протестировать не могу :(, ip адрес показывает тот же что и на сайте 2ip.ru :scratch:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Viktor1703 сказал(а):
Сейчас протестировать не могу :(, ip адрес показывает тот же что и на сайте 2ip.ru :scratch:

Тот же и должен быть, это твой внешний IP. Пропиши исключение в Windows Firewall для того порта, который используется в TCPConnect(), и все должно заработать.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Уже добавлено, может я опять туплю? :stars:

Клиент:
Код:
Global $IP = StringRegExpReplace(BinaryToString(InetRead('http://checkip.dyndns.com', 1)), '.+?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).+\s', '\1')

TCPStartup()
$iSocket = TCPConnect($IP, 8080)
TCPSend($iSocket, 'hello')

While 1
	$iRecv = TCPRecv($iSocket, 1024)
	If $iRecv Then
		ConsoleWrite($iRecv & @CRLF)
	EndIf
    Sleep(100)
Wend

Сервер:
Код:
Global $iEnable = False

TCPStartup()
$Main = TCPListen(@IPAddress1, 8080)
If @error Then
	Exit
EndIf

Do
	$Socket = TCPAccept($Main)
Until $Socket <> -1

While 1
	$iRecv = TCPRecv($Socket, 1024)
	If $iRecv Then
		ConsoleWrite($iRecv & @CRLF)
		If $iRecv = 'hello' Then
			$iEnable = True
		EndIf
        If $iEnable Then
            TCPSend($Socket, Random(1, 100, 1))	
        EndIf
    EndIf
	Sleep(100)
Wend
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Viktor1703
Ты на маршрутизаторах проброс портов настроил?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Теперь тебе нужно найти способ для клиента выйти в интренет с другого модема. Например клиент запустить на ноутбуке через с 3G (или сходить к соседу) а сервер на компьютере 8)


Добавлено:
Сообщение автоматически объединено:

Я могу попробывать соединиться. Только нужет твой IP :smile:
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
А всем пользователям у которых такая же система с wifi роутером я тоже в подарок буду раздавать 3G можемы с безлимитным интернетом за мой счёт вместе с клиентской частью?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Нет, твои клиенты только должны будут знать адрес твоего сервера
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
В том то и дело что не работает, я уже тестировал и сам и со знакомыми, всё что касается интернета и моего IP - не работает.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Ну смотри как она должно быть.
Твой модем скорее всего настроен в режиме роутера - это автоматически включает на нем NAT
1. В настройках модема настраиваешь проброс портов на адрес wifi роутера (надеюсь этот адрес у него постоянный)
2. WiFI роутер скорее всего работает тоже через NAT поэтому заходишь в его проброс портов и настраиваешь на IP твоего компьютера (адрес должен быть статическим)
3. В серверной части жестко прописываешь, какой адрес должен прослушиваться. Не надо использовать @IPAddressN

А клиенты должны знаеть к какому адресу подключатся. Если у тебя статика, то проблем нет. А если каждый раз тебе провайдер выдает новый - ищи способ передавать его клиентам
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Wifi роутер у меня настраивается с диска, кликай только далее, да, в настройки залезть тоже можно, но что я там только не менял и не переделывал, по другому не работает


Добавлено:
Сообщение автоматически объединено:

Меня интересует как Skype работает, ведь мне же не нужно ни чего менять, значит есть другой выход
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Всмысле как работает Skype ?? ты наверное шутишь :smile: Skype имеет сервер, клиенты подключаются к нему (к известному серверу) и этот же сервер пересылает информацию о собеседниках.


Добавлено:
Сообщение автоматически объединено:

Да еще, тебе дали ссылку http://www.windowsfaq.ru/content/view/451/82/
где ты можешь проверить как ты настроил свои роутеры. Запускай свой сервер и пробуй соединится на свой адрес, на тот порт который сервер слушает. Если соединения нет - проблемы в твоих железках.
 
Верх