информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Модель надежности отказоустойчивой... 
 Foreshadow продолжает дело Meltdown... 
 Попасть под лошадь 
 Последний спокойный день для сайтов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
не совсем так 25.05.01 18:18  Число просмотров: 480
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я чего то про то почему нельзя знать ID и HANDLE вместе так
> и не понял
> если интересно, посмотри как это было сделано в He4 -
> классы
> Server,Forward,Control

По правде сказкть я не смотрел классы, но кажется они у меня лежат на винте. Я их посмотрю обязательно. Если не найду дам знать.

Но тут дело в другом. Конечно же мой класс содержит и ID и HANDLE. Но представь ситуацию, когда программеру приспичило Attach-нуть свой HANDLE (не созданный через мой класс). Механизм следующий:

HANDLE hSomeThread;
......
CMyThread thread;
.......
thread.Attach(hSomeThread);

или
CMyThread* pThread = CMyThread::FromHandle(hSomeThread); - тут, если поток не создан моим классом, а через API, то создаст временной сласс с указанным HADNLE, потом удалит его.
Теперь надо сделать постинг
pThread->PostThreadMessage(....);
причем, в большинстве custom мессаг, в качестве LPARAM идет Thread HANDLE. так очень удобно, т.к. через FromHandle() всегда получу указатель на класс.
Так вот, если узер аттачит свой хендл, то мне нужно знать и его ID. Я хотел устроить так, чтобу ID из инфо снимал мой класс, а не узер его давал. Естественн, если что то не устраивает, есть вариант
pThread->m_nThreadId = nMyThreadId;

ID мне нужен был всего лишь для постинга, бельше нигде вроде не применяю.
Но суть в том, что все очень четко работает. Я на одной версии сделал Демо - просто супер. Клиент запускает несколько потоков с сокетами и обмен идет без каких либо проблем. причем не надо иметь приложение с окном, сойдет любое лишь бы Win32 :)) одно хреново,я кажется плотно его связываю с 2К.
Легким движением можно накатать Клиент/Сервер только свои обработчики событий написать надо.

вообщем намерен в дальнейшем на эту технологию посадить окошки, чтобы они в разных потоках без проблем крутились. Но этим на досуге побалуюсь.

Кстати, мне потом надо будет серввер тестировать с большим колчеством клиентов, не знаю че делать.

P.S. если че тут несвязанное накатал, sorry :))) немного спешил, за мыслями не успевал :)))
<programming> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2018 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach