| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Dll ClientSocket |
| Автор: Racer 28.2.2011, 00:06 |
| ДОбрый вечер кодеры. Такой вопрос: если у меня есть прога, в нет server Socket и есть dll в ней Client Socket каким должны быть параметры Blocking? или как? а то у меня клиент не держит соединение? Объясните плиз. Что за обработка в отдельном потоке? Заранее спасибо и с уважением, Влад |
| Автор: dvamaster 28.2.2011, 06:08 |
Только ctBlocking ctNonBlocking - используется только совместно с окном. Событие OnRead работать не будет Читать нужно все в потоке Поток TThread http://www.intbook.info/delphi/Glava29/Index6.html |
| Автор: Racer 28.2.2011, 10:29 |
| Потоки я знаю, но не пойму именно чтение сокета из него. Можно пример? |
| Автор: Racer 28.2.2011, 15:52 |
| Так получается поток должен жить вечно? Надо цикл делать ? Клиент должен только слать сообщения, принимать не надо |
| Автор: Racer 1.3.2011, 00:05 |
| Помогите плиз мне! |
| Автор: kami 1.3.2011, 01:13 | ||
| С учетом : я всегда делаю так (то есть - все нижесказанное является imho), и работаю в ctNonBlocking. С остальным, включая создание компонентов в Run-time (обязательное условие, чтобы ClientSocket действительно работал в дополнительном потоке) я думаю, разобраться труда не составит.
Для того, чтобы этот поток завершился корректно, нужно послать ему PostThreadMessage(ThreadID, WM_QUIT...). В принципе, пойдет и любое другое сообщение, но тогда нужно предварительно выставить флаг Terminated. Чтобы создать соединение, отправляем PostThreadMessage(ThreadID, msgAddConnection,...). Само собой - предварительно нужно объявить msgAddConnection как WM_USER+ххх. Удалить соединение - аналогично. |
| Автор: Racer 1.3.2011, 09:45 |
| Я кажется понял реализацию. Попробую сделать на днях. Огромное спасибо |
| Автор: Racer 2.3.2011, 21:53 |
| Что то не могу понять. мне надо из dll отправлять а я не пойму что мне сделать? исходя из кода ками? |