![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Привет всем.
У меня возник небольшой вопрос по TCkientSocket(вкладка Internet) в Delphi 7. В общем, я отправляю запрос, получаю ответ. И вот как мне сразу после получения ответа закрыть сокетное соединение? Подскажите плизз. З.Ы. Есть ли какой нить мануал по TClientSocket. Просто о использовании?
--------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 3 Всего: 50 |
-------------------- |
|||
|
||||
| wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Я это уже пробовал. Знаешь почему это не работает.
Потому, что нам приходит несколько пакетов с ответом, а ты после получения первого пакета отрубаешь соединение. Именно поэтому я и использую Memo1.Text := Memo1.Text + Socket.ReceiveText; --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: нет Всего: 11 |
wsr
отрубай соединение после последнего пакета) или поставив счётчик на их кол-во если знаешь) или поставивв таймер типа если за 10секунд не фига не пришло) или по самому пакету=) если это твоё приложение шлёт пакеты то тогда можешь слать пакет типа 'end' а потом проверяешь if Socket.ReceiveText='end' then.... |
|||
|
||||
| N1k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: 2 Всего: 2 |
wsr
Чем тебя не устрамвает автоматический разрыв соединения? Ищи в заголовке Content-Length и сравнивай с количеством прочитанных данных. После того, как Content-Length станет равным длинне прочитанных данных, рви соединение. зы:Content-Length не учитывает заголовок... |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
По существу:
А использовать какойнить httpclient религия не позволяет? Если не позволяет тогда есть один извращенческий способ: если в ClientSocket1Read присол текст содержащий в последней строке = "</html>" значит ты получил всю html страницу .... do Disconnect Не по сущесву: (Анти реклама ИМХО. вобще использование TCkientSocket как для веба так и для не веба крайне нерекомендуемо. Эти компоненты скорее демонстрационное пособие но не более. |
|||
|
||||
| N1k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: 2 Всего: 2 |
Кем "нерекомендуемо"? Там есть ошибки в алгоритме работы гнезда? А то, что для веба нужно использовать компоненты работающие на http протоколе, это точно. Хотя в конечном итоге все замыкается на WinSock. |
|||
|
||||
| wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Как бы еще узнать, что именно этот пакет последний После получения данных проходит примерно от 5 до 10 секунд до разрыва соединения. Дай какой нить пример, да желательно и с "мануалом" по компоненту.
Можешь назвать такие компоненты? Был в Delphi 4-5 компонент, назывался NMHTTP. Так классно было. Можно было в легкую послать запрос, получить отдельно Header и Body из ответа, и закрыть соединение. А в Delphi 7 я что то подобного компонента ненашел! --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
||||
|
||||
| wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Snowy, спасибо посмотрю.
--------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
компоненты ICS www.owerbyte.be (Имхо удобней и проще чем индейцы, мануалы ненужны есть примеры)
Не рекомендуемо мной, хотя уверен если провести опрос то многие подпишутся. Насчёт ошибок клиента, не помню (возможно мелкие есть) , но судя по тому когда эти компоненты последний раз обновлялись не исключено, а вот в СерверСокете как минимум одна гадкая ошибка была найденна. Ну а поскольку сервер и клиент представляются в одной связке, то моё недоверие автоматически распространилось и на него. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Подписываюсь Использовать готовые библиотеки работы с сетевыми протоколами лучше по простой причине: 1. Это проще. 2. Там уже обойдены все грабли, на которые сам обязательно наступишь. Есть и минусы, но они важны только для маньяков или разработчиков собственных библиотек. |
|||
|
||||
| N1k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: 2 Всего: 2 |
Самый простой "компонент" это WinInet.
Научишься пользовать его для HTTP и проблем у тебя не будет... В том плане, что все предложенные комноненты не работают с HTTPs без дополнительных библиотек, А WinInet eсть на каждой машине с Windows. ps:Как пример посмотри компонент EasyNet. Он написан с использованием WinInet и есть возможность использовать кукисы локально... Это сообщение отредактировал(а) N1k - 20.1.2006, 11:40 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
||||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 3 Всего: 50 |
Вряд ли. Просто нужны прямые руки (это не про тебя, а вообще). -------------------- |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |