Что нового

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

Viktor1703

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

Yashied

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

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

Viktor1703

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
@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 не существует.
 
Автор
Viktor1703

Viktor1703

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

Yashied

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

Viktor1703

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Внешний 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 и на роутере. По умолчанию все пакеты приходящие без запроса игнорируются. Для теста портов можешь воспользоваться этим сервисом.
 
Автор
Viktor1703

Viktor1703

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Viktor1703 сказал(а):
Сейчас протестировать не могу :(, ip адрес показывает тот же что и на сайте 2ip.ru :scratch:
Тот же и должен быть, это твой внешний IP. Пропиши исключение в Windows Firewall для того порта, который используется в TCPConnect(), и все должно заработать.
 
Автор
Viktor1703

Viktor1703

AutoIT Гуру
Сообщения
1 535
Репутация
410
Уже добавлено, может я опять туплю? :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
Репутация
462
Viktor1703
Ты на маршрутизаторах проброс портов настроил?
 

inververs

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


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

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

Viktor1703

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

inververs

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

Viktor1703

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

inververs

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

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

Viktor1703

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


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

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

inververs

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


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

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