Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.02.2014, 17:08
Аватар для Xotabu4
Xotabu4 Xotabu4 вне форума
Прохожий
 
Регистрация: 05.07.2012
Сообщения: 9
Репутация: 10
По умолчанию Winsock2 Recv

День добрый.
Пишу свой маленький модуль для дальнейшего использования.

Так вот, как работает recv например в Synapse или Indy? Я не пойму принцип как реализовано, дебажил, смотрел но так и не въехал.

Как отделяются заголовки от кода страницы, парсят?

Опишите как можно подробнее по этой теме.
Работаю с TCP сокетом.

Последний раз редактировалось Xotabu4, 11.02.2014 в 17:42.
Ответить с цитированием
  #2  
Старый 11.02.2014, 18:39
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Xotabu4
Как отделяются заголовки от кода страницы
$0d$0a, которые означают пустую строку (после последнего заголовка идет $0d$0a $0d$0a).
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 11.02.2014 в 18:42.
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Xotabu4 (11.02.2014)
  #3  
Старый 11.02.2014, 18:52
Аватар для Xotabu4
Xotabu4 Xotabu4 вне форума
Прохожий
 
Регистрация: 05.07.2012
Сообщения: 9
Репутация: 10
По умолчанию

Ага, значит нужно выполнять цикл пока не получим $0d$0a.
С этим разберусь значит. Спасибо.

Кто знает ответы на оставшиеся вопросы?
Ответить с цитированием
  #4  
Старый 11.02.2014, 19:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

а можно считывать позаголовочно, т.е. текст заканчивающийся на $0d$0a. тогда пустая строка (только $0d$0a) будет концом заголовков.
а что еще за вопросы?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Xotabu4 (11.02.2014)
  #5  
Старый 11.02.2014, 19:26
Аватар для Xotabu4
Xotabu4 Xotabu4 вне форума
Прохожий
 
Регистрация: 05.07.2012
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
а что еще за вопросы?

как работает recv например в Synapse или Indy? Вообще как правильно получать данные для TCP?
И для чего в synapse перед recv такая строка?

PHP код:
Winsock2.IoctlSocket(FSocketFIONREADu_long(Res)) 

На msdn сказано следующее

Цитата:
Ioctlsocket функция управляет режимом ввода / вывода сокета.
Как я понял функция для изменения режима на блокирующий сокет, и наоборот?

Последний раз редактировалось Xotabu4, 11.02.2014 в 19:42.
Ответить с цитированием
  #6  
Старый 12.02.2014, 10:18
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

да, флаг FIONBIO функции ioctlsocket устанавливает режим работы сокета блокирующий (синхронный) или неблокирующий (асинхронный).

для чтения данных из сокета есть функция:

Код:
int recv (
    SOCKET s,	
    char FAR* buf,	
    int len,	
    int flags	
   );
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Xotabu4 (12.02.2014)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025