WSAAsyncSelect TRUBLS

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

  1. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Est problema koga dobavlau comandu WSAASYNCSelect Connect ne rabotaet , a koga ubirau tolko etu zapis ves kod rabotaet , edinstvennoe sto mozet bit ne tak , sto kod nahoditsa v WndProc i tam ge pri nagatii Button1 ya hochu sdelat CONNECT s prisvoeniem posila WM_SOCKET moemu oknu ......tak mozno ili ne za ?? Ya poproboval perevesti ves kod v drugoe mesto i tam aktivirovat WSAAsyncSelect , i vse ravno Call CONNECT vizivaet osibku soedinenia , vot listing toy chasti esli pomoget

    P.S. obrabotka soobseniy nuzna stob uznat kogda i sto vipolnat ..... inache kak cherez 1 soket organizovat zikl peredach tuda suda ya ne znau ((((((((

    Код (Text):
    1. ;активизировать библиотеку сокетов
    2. invoke WSAStartup,0202h,addr wsd
    3. cmp eax,0
    4. jz NO_ER1
    5. invoke MessageBox,NULL,ADDR error,ADDR AppName,MB_OK
    6. jmp EXI
    7.  
    8. NO_ER1:
    9. invoke socket,AF_INET,SOCK_STREAM,0
    10.  
    11. ;#########################################
    12. cmp eax,not 0
    13. jnz NO_ER2
    14. invoke MessageBox,NULL,ADDR error1,ADDR AppName,MB_OK
    15. jmp EXI
    16. ;########################################
    17. NO_ER2:
    18. mov sock,eax
    19. ;invoke WSAAsyncSelect, sock, hWnd, WM_SOCKET, FD_READ ;!!!!!!!!!!!! Vot tut kogda net ...
    20. :vse prilogenie rabotaet ok ,inache net soedinenia
    21.   ; #define WM_USER  0x0400
    22. mov sin2.sin_family,2;AF_INET
    23. ;invoke htons,Port
    24.     ;mov eax,Port
    25. mov sin2.sin_port,2000;ax
    26. ;##########################################
    27. invoke inet_addr, addr AdresIP
    28. mov sin2.sin_addr.S_un.S_addr,eax
    29. ;попытка соединиться с сервером
    30. invoke connect,sock,offset sin2,sizeof sin2
    31. cmp eax,0
    32. jz NO_ER4
    33. invoke MessageBox,NULL,ADDR error2,ADDR AppName,MB_OK
    34. jmp CLOS
    35. ;##########################################
    36. NO_ER4:;ждем инфу
    37. push 0
    38. push 100
    39. push offset buf
    40. push sock
    41. call recv@16 ;В eax длина сообщения
    42. ;в начале перекодировка
    43. push offset buf1
    44. push offset buf
    45. call CharToOemA@8
    46. ;теперь вывод
    47. ;посылаем информацию
    48. push 0
    49. push offset txt
    50. call lstrlenA@4
    51. push eax
    52. push offset txt
    53. push sock
    54. call send@16
    55. jmp CLOS
    56. EXI:;#########################
    57. push sock
    58. call closesocket@4
    59. ;выход происходит по завершении всех служб
    60. ;процедура вывода номера ошобки
    61. CLOS:
     
  2. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    сокет по умолчанию - блокирующий. Перед использованием асинхронных функций его надо перевести в асинхронный режим.
     
  3. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Как это делается ?? )))
     
  4. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    Вызов асинхронной ф-ии автоматом переводит сокет в асинхронный режим.

     
  5. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Подскажите где материал про WSA Events найти ....желательно на русском ....статьи допустим .... Пожалуста ..
     
  6. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Нк не знаю ......у меня надо вручную переводить ....и на других компах тоже пробовал ....перевод вручную только работает ....... =)
     
  7. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
     
  8. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Да я нашел где у меня косяк ......почему так было ....Пасиб