WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Сокеты. сцена 3(заключительная).

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Сокеты. сцена 3(заключительная).
gonzales опубликован 13-01-2002 10:56 MSK   Click Here to See the Profile for gonzales   Click Here to Email gonzales  
Ну вот и подходит к концу (развязке) данное произведение искусства . Какие же были баги.
1.Отсутствие мозгов. Решение :Идти в монахи.
2.Я считал , что если я завожу себе CWinThread то все его методы которые я вызываю ,будут вызываться в контексте этого
потока. Как вы понимаете я жестоко ошибался.
И вызываются они в контексте текущего.
Решение: Думаю я буду делать супер-пупер-мега
callback механизм и передавать в child thread
указатель на функции которую он в свою очередь будет вызывать.
Занавес. Gonzales уходит со сцены.
P.S. Если есть какие-то мысли по поводу
callback механизма буду рад выслушать.
p.p.s 2Lamo . Будешь отвечать , постарайся
без мата и восклицательных знаков.
necer опубликован 14-01-2002 10:22 MSK     Click Here to See the Profile for necer  Click Here to Email necer     
А зачем именно callback механизм? А если попробовать воспользоваться сообщениями?
Flex Ferrum опубликован 14-01-2002 10:28 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
necer:
А по сути это тот-же callback механизм, только продвинутый :)).
necer опубликован 14-01-2002 14:14 MSK     Click Here to See the Profile for necer  Click Here to Email necer     
В общем, конечно, да, но в том-то и дело, что продвинутый. Между потоками обмениваться сообщениями весьма удобно и гораздо проще, нежели callback'и городить. Вообще, все должно быть на своем месте.
Flex Ferrum опубликован 14-01-2002 14:54 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
За исключением того, что (в общем случае) программеру нужно будет реализовать механизм обмена сообщениями между потоками. А задачу эту нельзя назвать тривиальной. Я это к тому, что не всегда есть возможность опереться на API-шный механизм обмена сообщениями - для него окна нужны.
michl_m опубликован 14-01-2002 15:31 MSK     Click Here to See the Profile for michl_m  Click Here to Email michl_m     
2Flex Ferrum:
Ты забыл про PostThreadMessage. Очень классная функция - окна не надо, но все что касается очереди сообщений ( GetMessage, PeekMessage, WaitMessage, GetOueueStatus ) внутри принимающего потока работает с сообщениями, посланными PostThreadMessage. К тому-же "лишних" сообщений типа WM_PAINT поток просто не получает.
gonzales опубликован 14-01-2002 16:25 MSK     Click Here to See the Profile for gonzales  Click Here to Email gonzales     
Извините ,но я тут недолго думая решил забить на этот изврат. Я просто сделал глобальную структурку с полем valid. Поток проверят значение valid и если оно TRUE
вытаскивает из структурки тип задачи (Send ,Connect) выполняет.И делает valid=false. В структурке ещё есть lParam и
wParam :)) Вообщем, что то типа сообщения только проще. Конечно механизм не самый надёжный но работает. Ещё была проблема с не
срабатыванием OnReceive. Может кто-нить знает почему?Я забил на него и стал в потоке постоянно опрашивать socket :
socket.receive(..);. И последнее . У меня получается что максимальное кол-во данных которые можно отправить- 32 байта.Может я наглючил?
gonzales опубликован 14-01-2002 18:46 MSK     Click Here to See the Profile for gonzales  Click Here to Email gonzales     
Я тут немного потрахался со своей прогой и
выяснил, что серверу приходит столько , сколько я послал (не обязательно 32байта).
Я использую CArchive и SocketFile. Когда я делаю In >> string1 (In это CArchive) то
в string1 пишется гораздо меньше чем я прислал. Кто работал с CArchive ,подскажите в чём у меня проблема!!
P.S. Какой максимальный размер данных ,который можно послать Send'ом.
africa опубликован 15-01-2002 11:07 MSK     Click Here to See the Profile for africa  Click Here to Email africa     
Есть еще такие механизмы как: maislot, pipe.
Попробуй завязать на них.
necer опубликован 16-01-2002 11:42 MSK     Click Here to See the Profile for necer  Click Here to Email necer     
mailslot
x опубликован 17-01-2002 13:31 MSK     Click Here to See the Profile for x  Click Here to Email x     
а мне вот Fibers нравится=с ними все получится совсем посто
lamo опубликован 19-01-2002 19:48 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
постараюсь без знаков.

зы.
совет:
выбрось те сырцы и напиши как тебе советовали.
не вяжись к ms api.

зэтс ол.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.