Показано с 1 по 4 из 4

Тема: СПК207 SysSocketAccept

  1. #1
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию СПК207 SysSocketAccept

    Добрый день!
    Пытаюсь запустить TCP Server.
    SysSockAccept постоянно равен 16#FFFFFFFF.
    При этом подключение к IP СПК - происходит.
    Проверял через Hercules и через клиента на Control Win.
    Не могу понять в чем причина.

    Архив проекта во вложении.

    Код:
    CASE step OF //Настройки
    0:
    stop:=FALSE;

    hSocket:=SysSockCreate(SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP, ADR(result));
    sa.sin_family:=SOCKET_AF_INET;
    sa.sin_addr.ulAddr:=SOCKET_INADDR_ANY;
    sa.sin_port:=SysSockHtons(port);
    result:=SysSockIoctl(hSocket, SOCKET_FIONBIO, ADR(mode));
    result:=SysSockBind(hSocket, ADR(sa), SIZEOF(sa));
    result:=SysSockListen(hSocket, maxCli);
    tries:=0;
    step:=1;

    //Коннект к серверу
    1:
    tries:=tries+1;
    hClientSocket:=SysSockAccept(hSocket, ADR(sa), SIZEOF(sa), ADR(result));
    IF hClientSocket<>16#FFFFFFFF THEN
    step:=3;
    tries:=0;
    okConn:=okConn+1;
    END_IF

    IF tries > 100 THEN //Ошибка, нет связи
    step:=4;
    tries:=0;
    END_IF

    //Отправляем данные
    2:
    tries:=tries+1;
    nbSend:= SysSockSend (hClientSocket, ADR(strSend), LEN(strSend), 0, ADR(result));
    IF nbSend<>0 THEN
    step:=3;
    tries:=0;
    END_IF
    IF tries > 100 THEN //Ошибка, нет связи
    step:=4;
    tries:=0;
    END_IF

    //Ждем и разбираем ответ
    3:
    tries:=tries+1;
    strRecv:='';
    nbRecv:= SysSockRecv (hClientSocket, ADR(strRecv), 1024,0, ADR(result));
    IF nbRecv<>0 THEN
    ok:=ok+1;
    tries:=0;
    END_IF

    IF tries > 10 THEN
    step:=4;
    tries:=0;
    END_IF

    4:
    SysSockClose (hClientSocket);
    IF stop THEN
    step:=5;
    ELSE
    step:=1;
    END_IF


    5:
    SysSockClose (hSocket);
    step:=0;

    END_CASE

    Вложения Вложения

  2. #2
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Вариантов нет?

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,067

    По умолчанию

    Навскидку

    SysSockAccept(hSocket, ADR(sa), SIZEOF(sa), ADR(result));
    На вход функции должен подаваться не размер, а указатель на размер.

    Посмотрите это видео:
    https://www.youtube.com/watch?v=ThVLXygHnnU&t=22s

    И начните с построчного копипаста кода из него.

    Или есть другой вариант - высокоуровневая CAA Net Base Services, где TCP-сервер создается с помощью пары ФБ.
    В версии 3.5.4.0 в состав библиотеки входит pdf с описанием и примерами (в более поздних версиях библиотеки его потеряли).

  4. #4
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Навскидку



    На вход функции должен подаваться не размер, а указатель на размер.
    Спасибо, проглядел - сейчас все заработало.

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Или есть другой вариант - высокоуровневая CAA Net Base Services, где TCP-сервер создается с помощью пары ФБ.
    В версии 3.5.4.0 в состав библиотеки входит pdf с описанием и примерами (в более поздних версиях библиотеки его потеряли).

    Спасибо, поищу.

Похожие темы

  1. Не загружается СПК207
    от Lyohin в разделе СПК2хх
    Ответов: 36
    Последнее сообщение: 03.03.2017, 16:17
  2. СПК207 web и СИ8
    от Пьер в разделе Трёп (Курилка)
    Ответов: 6
    Последнее сообщение: 10.03.2015, 14:02
  3. СПК207
    от kholonkin в разделе СПК2хх
    Ответов: 19
    Последнее сообщение: 28.08.2013, 22:11
  4. СПК207+СМИ2
    от 2117180 в разделе СПК2хх
    Ответов: 1
    Последнее сообщение: 21.08.2013, 11:58
  5. СПК207 USB
    от ОАО"Органика" в разделе СПК2хх
    Ответов: 6
    Последнее сообщение: 31.08.2012, 16:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •