Что нового

Слушающий сокет не создается

DmitriyShh2

Новичок
Сообщения
7
Репутация
0
Здравствуйте. имеется два кода: слушающий и отправляющий. Слушающий по неизвестным причинам не создается (ошибка указывает на то, что ip не существует). работаю на ноутбуке и пк, которые подключены через один wi-fi. может кто-нибудь помочь? (кстати, сокет на 127.0.0.1 у меня создается)

Отправляющий:
Код:
TCPStartup();Инициировать использование службы TCP
$IP = '127.0.0.1';Указываем адрес к которому будем подключаться (Указываю внешний адрес)
$port = 400;Указываем порт к которому будем подключаться
$socket = TCPConnect($IP, $port);Указыываем ОС создать сокет, подключенный к указанному адресу
$dannie = InputBox('','','');Окно, которое принимает данные для отправки.
$rez = TCPSend($socket, $dannie);Отправляем данные на сервер
If @error <> 0 Then msgbox(0, "Ошибка", "Не удалось отправить данные на сервер")
TCPCloseSocket($socket);Закрываем сокет
TCPShutdown();Завершить использование службы TCP

Слушающий:
Код:
TCPStartup();Инициировать использование службы TCP
$IP = @IPAddress1;Указываем адрес который будем прослушивать;
$port = 400;Указываем порт который будем прослушивать
While 1
    $socket = TCPListen($IP, $port, 1);Создаем слушающий сокет, по указанному адресу
    If @error Then ExitLoop;Если не удалось создать сокет, то выйти
    $Connect = -1
    Do
        $Connect = TCPAccept($socket);Указыываем ОС создать сокет если появилось входящее подключение в прослушиваемом сокете
    Until $Connect <> -1;Если клиент подключился, то выйти из цикла, если ошибка или никто не подключился, то продолжить цикл
    While 1
        $dannie = TCPRecv($Connect, 2048);Получаем максимум 2048 символов от клиента
        If @error Then ExitLoop;Если не удалось получить символы, то выйти из цикла
        If $dannie <> "" Then;Если данные получены, то...
                MsgBox(0,'Get',$dannie)
            ExitLoop
        EndIf
        Sleep(30)
    WEnd
    TCPCloseSocket($socket);Закрываем сокет
WEnd
TCPShutdown();Завершить использование службы TCP
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
DmitriyShh2 [?]
(Указываю внешний адрес)
Какой еще внешний адрес? У Вас компьютеры в одной сети, нужно указывать IP-адреса локальной сети.

Тем более т.к. у Вас роутер, подключение извне у Вас никогда не уйдет на какой либо компьютер пока Вы не сделаете проброс портов на роутере.
 

Sln

Знающий
Сообщения
45
Репутация
5
на роутерах с хабом локалка по дефолту общая (LAN<=>WIFI)
указывай в TCPListen локалный IPшник + делай детализацию ошибки @error (мож кто уже на TCP порте сидит)
 
Верх