Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Как проверить сокеты [D7]


Евгений07 ©   (11.10.16 19:43

Доброго времени!
Перестали работать сокеты.
Клиент: синхронный, неблокирующий.
Листен: асинхронный.

Работа:
1.
- Клиент посылает команду 1 (байт 40).
- Листен принимает и обрабатывает.
2.
- Листен посылает команду 2 (байт 80).
- Клиент посылает команду 1,
- Клиент принимает и выполняет команду 2.
- Клиент посылает ответ на команду 2 (байт 80).
- Листен принимает и обрабатывает команду 2.
3.
- Клиент посылает команду 1.

А дальше тишина.

Вчера все работало!
Система с отладчиком Клиента работает.
В реале после шага 3 опрашиваю: OperWrite = 10
   if (OperWrite > 10) then begin
     if FD_IsSet(Sockett, FDSetW) then
     begin
       Len := LenWrite;
       LenWrite := Send(Sockett, BufWrite, Len, 0);
       if (LenWrite < Len) or (OperRead >= 900) or (OperWrite >= 900) then begin
         OperWrite := 13;
//          goto KONC1;
       end else begin
         OperWrite := 10;  //  после передачи возвращает готов к приему
       end;
     end else begin
//        goto KONC1;
       OperWrite := 13;
     end;
   end;

Считаю, команда Send выполнена??
А на Листен событие
WSAWaitForMultipleEvents(3, @FEvents, False, WSA_INFINITE, False) = WSA_WAIT_EVENT_0 + 2
if NetEvents.lNetworkEvents and FD_READ <> 0 then
. . .
не наступило

Подскажите где и как порыться!


Евгений07 ©   (12.10.16 23:01[1]

Затык сокета?
Это же элементарно, Евгений07!

1 Не было ли идеи сохранить лог, дописывая в конец файла?
2 Не была ли она реализована заменой Rewrite на Reset?
3 Не являлся ли лог текстовым файлом?
Если да, то замените Reset на Append.

А почему не было ошибки ввода - вывода - пока не знаю


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо