Потоки и сокеты

Тема в разделе "WASM.NETWORKS", создана пользователем al79, 27 фев 2007.

  1. al79

    al79 Алексей

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    133
    Адрес:
    Екатеринбург
    Всем привет.
    Пишу программку которая устанавливает соединение с сервером, после установления соединения сразу создается поток, проблема в том что после создания потока разрывается соединение с сервером с моей стороны.
    Поток создаю следущим образом:
    Код (Text):
    1. invoke CreateThread,0,0,offset crbaze,0,0,offset dspt
    Вот не могу понять может CreateThread закрывает сокеты и потоки нужно создовать другим способом?
    (Сам поток у меня сокеты закрывать не может в отладчике смотрел сокет закрывается еще до того как запускается поток.)

    Заранее спасибо!
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    полный сорс пожалста.
     
  3. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Наследование хэндлов проверь.
     
  4. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Это-то тут при чем?
     
  5. al79

    al79 Алексей

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    133
    Адрес:
    Екатеринбург
    Вот кусок

    Код (Text):
    1.     push ebp
    2.     mov ebp,esp
    3.     pushad
    4.     mov ebx,dword ptr [ebp+12]
    5.     .....
    6.     cmp ebx,WM_COMMAND
    7.     jnz ms03
    8.     cmp word ptr [ebp+16],3200
    9.     jnz mdf
    10.     mov ebx,offset infdb
    11.     invoke CHP3,hinst,0,0,0,dword ptr [ebp+8]
    12.     or eax,eax
    13.     jnz msc01
    14.     invoke MessageBoxA,dword ptr [ebp+8],offset err3,offset wname,0
    15.     jmp mf
    16. msc01:
    17.     invoke EnableWindow,hbtn,FALSE
    18.     invoke CreateThread,0,0,offset crbaze,0,0,offset dspt
    19. mf:
    20.     mov dword ptr [ebp-4],1
    21.     popad
    22.     leave
    23.     ret 16
    24. ms03:
    CHP3 - здесь идет обращение к библиотеке которая по сети цепляется к АТС о проводит авторизацию.
    Раньше этой библиотекой пользовался все было без проблем, но в тех программах небыло необходимости создавать потоки.
     
  6. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    СHP3 оно где хоть результат-то возвращает? И чего вы в качестве параметра потоку передаете?
     
  7. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    может и не в вашем коде проблема но пока с ним ничего не понятно
     
  8. al79

    al79 Алексей

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    133
    Адрес:
    Екатеринбург
    Спасибо всем кто откликнулся!

    Решил обойти эту проблему, в программе первым делом создать все необходимые потоки вначале всех потоков пришлось поставить цикл который не дает выполнение основного кода пока не придет соответствующее событие.
    Но опять возникла проблема, как только какой нибудь поток завершает свою работу (даже те которые даже не трогают сокет) соединение закрывается.
    Может дело в том как я создаю потоки, где то вычитал про наследие дискрипторов потоков, но этого не понял.
    К стати про "CHP3" - эту библиотеку когда то писал сам, там тоже создается поток таким же способом, и установка соединения и авторизация все происходит в потоке, поток этот крутится до выгрузки этой библиотеки.