Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: проблема с сокетами

  1. #11

    По умолчанию

    вот страничка http://www.owen.ru/forum/showthread.php?t=517&page=3
    от Филоненко Владислава при открытии порта один разок перепроверяется открытость порта :-)
    я аналогично и с езернетом делаю (только чуток чаще проверяю - это про UDP)
    и в полезностях похожее http://www.owen.ru/forum/showthread.php?t=551&page=4 тема сообщения "Пример работы ПЛК с смс сообщениями".

    а смотреть внимательно нужно в этом месте

    TON_Port(IN:=NOT TON_Port.Q, PT:=t#200ms);

    IF TON_Port.Q AND NOT port_init THEN (*Пытаемся открыть порт*)
    com_handle:=SysComOpen(com_num);
    IF com_handle<>16#FFFFFFFF THEN
    port_init:=TRUE;
    ELSE
    SysComClose(com_num);
    END_IF

    END_IF

    IF TON_Port.Q AND port_init THEN (*Настраиваем порт*)
    com_set.Port:=com_num;
    com_set.dwBaudRate:=9600;
    com_set.byParity:=0;
    com_set.dwTimeout:=0;
    com_set.byStopBits:=0;
    com_set.dwBufferSize:=0;
    com_set.dwScan:=0;
    res:=SysComSetSettings(com_num,ADR(com_set));
    IF NOT res THEN
    blnPortOpen:=TRUE; (*Далее пошли работать с портом в следующий шаг SFC*)
    END_IF
    END_IF

    и дальше в программе иногда проверять com_handle на вменяемость иначе закрыли порт и возврящаемся в этот кусок программы:-) Извени что не про езернет пример (вот что под руками было то и выложил), но там аналогично, идея таже. Удачи!

    З. Ы. СМС через IP пока тоже не видел :-(хотя поставить не вдалеке комп + инет и думаю можно начинать пробывать на скриптах :-) есть же спамеры и на СМС.
    Последний раз редактировалось Gans; 24.12.2009 в 15:10. Причина: С именами накосячил :-(теперь неделю совесть будет пучить:-)
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  2. #12

    По умолчанию

    Спасибо, с закрыванием сокетов разобрался, вроде
    Новая проблема
    Делаю
    buf :='GET / HTTP/1.0 $R$N';
    res:=SysSockSend(sock, ADR( buf ), SIZEOF( buf ), SOCKET_MSG_OOB );

    Через пол секунды делаю
    rcv:=SysSockRecv(sock, ADR(rcv_buf), SIZEOF(rcv_buf), SOCKET_MSG_OOB );

    в rcv возвращает 0 и rcv_buf пустой.

    В логах хттп сервера записи появляются

  3. #13

    По умолчанию

    надо не пол-секунды ждать, а читать пока не появится или не выйдет таймаут - секунд 120. интернет штука медленная.

  4. #14

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    надо не пол-секунды ждать, а читать пока не появится или не выйдет таймаут - секунд 120. интернет штука медленная.
    Тоесть читать пока res не -1?
    Следующая проблема, SysSockSend тоже за следующей попыткой -1

  5. #15

    По умолчанию

    Пример web-сервера посмотрите

  6. #16

    По умолчанию

    смотрю, но там пока сложновато для меня а нету примера попроще?

  7. #17

  8. #18

    По умолчанию

    SysSockConnect постоянно возвращает false, но не сморя на это SysSockSend работает. Что за дела?
    Последний раз редактировалось yuren; 23.12.2009 в 17:56.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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