![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
ДОбрый вечер кодеры.
Такой вопрос: если у меня есть прога, в нет server Socket и есть dll в ней Client Socket каким должны быть параметры Blocking? или как? а то у меня клиент не держит соединение? Объясните плиз. Что за обработка в отдельном потоке? Заранее спасибо и с уважением, Влад Это сообщение отредактировал(а) MetalFan - 28.2.2011, 18:46 |
|||
|
||||
| dvamaster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 30.6.2004 Где: Россия : Курган Репутация: 2 Всего: 10 |
Только ctBlocking ctNonBlocking - используется только совместно с окном. Событие OnRead работать не будет Читать нужно все в потоке Поток TThread http://www.intbook.info/delphi/Glava29/Index6.html -------------------- Хорошую информацию трудно добыть. Сделать с ней что-нибудь - еще труднее. /L. Skywalker/ Что же я сделал не так? /Король Лир/ Я делаю это для твоего же блага! /Любой родитель и палач/ PKUNZIP.ZIP /неизвестный/ |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Потоки я знаю, но не пойму именно чтение сокета из него.
Можно пример? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Не обязательно. Стандартное решение - создать доп.поток, в нем - выборку сообщений, в этом же потоке создать ClientSocket. И все - можно пользоваться любым привычным режимом blocking. Единственное ограничение - этот доп. поток нельзя пытаться создать при инициализации dll, будет деадлок (было дело, напоролся на эти грабли). |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Так получается поток должен жить вечно?
Надо цикл делать ? Клиент должен только слать сообщения, принимать не надо |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Помогите плиз мне!
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
С учетом :
я всегда делаю так (то есть - все нижесказанное является imho), и работаю в ctNonBlocking. С остальным, включая создание компонентов в Run-time (обязательное условие, чтобы ClientSocket действительно работал в дополнительном потоке) я думаю, разобраться труда не составит.
Для того, чтобы этот поток завершился корректно, нужно послать ему PostThreadMessage(ThreadID, WM_QUIT...). В принципе, пойдет и любое другое сообщение, но тогда нужно предварительно выставить флаг Terminated. Чтобы создать соединение, отправляем PostThreadMessage(ThreadID, msgAddConnection,...). Само собой - предварительно нужно объявить msgAddConnection как WM_USER+ххх. Удалить соединение - аналогично. Это сообщение отредактировал(а) kami - 1.3.2011, 01:14 |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Я кажется понял реализацию. Попробую сделать на днях.
Огромное спасибо |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Что то не могу понять.
мне надо из dll отправлять а я не пойму что мне сделать? исходя из кода ками? |
|||
|
||||
![]()
|
| Правила форума "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. |