Socket (для знающих С)

Тема в разделе "WASM.BEGINNERS", создана пользователем satana13, 26 июн 2007.

  1. satana13

    satana13 New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2007
    Сообщения:
    5
    Изучаю sockets и уже дошел до обработки сообщений WSA_ACCEPT, и тут уменя возникли ошибки, если точнее то недопонимание... Дело в том что учебник я нашел только на С, а у меня с ним неважно. До этого момента если возникали вопросы - то помогал поиск по папке includes(masm32) =), но на эти два вопроса я так и не нашел ответа для начала предоставлю вам код из учебника:

    Код (Text):
    1.  01) void WndProc_OnWSAAccept(HWND hWnd, UINT msg, NPARAM wPararn, LPARAM IParam)
    2. 02) {
    3. 03) int rc;
    4. 04) if(HSAGETSELECTERROR(lParam) != 0)
    5. 05) {
    6. 06) MessageBox(NULL, "accept Error"', "Error", MB_OK);
    7. 07) WSAAsyncSelect(srv_socket, hWnd, 0, 0);
    8. 08) return;
    9. 09) }
    10. 10) acc_sin_len = sizeof(acc_sin);
    11. 11) srv_socket = accept(srv_socket, (LPSOCKADDR)&acc_sin, (int FAR 1)---*)&acc_sin_len);
    12. 12) if(srv_socket == INVALID_SOCKET)
    13. 13) {
    14. 14) MessageBox(NULL, "accept Error, invalid socket", "Error", MB_OK);
    15. 15) return;
    16. 16) }
    17. 17) rc = WSAAsyncSelect(srv_socket, hWnd, WSA_NETEVENT, FD_READ | 1)---FD_CLOSE);
    18. 18) if(rc > 0)
    19. 19) {
    20. 20) closesocket(srv_socket);
    21. 21) MessageBox(NULL, "WSAAsyncSelect Error", "Error", MB_OK);
    22. 22) return;
    23. 23) }
    24. 24) }
    Обьясните пожалуйста, что такое HSAGETSELECTERROR с четвертой строки? Функции такой я в инклудах не нашел, константы такой тоже... и еще один момент, что такое add_sin из строки 10.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну судя по всему получает код ошибки... догадаться можно
     
  3. satana13

    satana13 New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2007
    Сообщения:
    5
    Значит меняю на WSAGetLastError, а другое?
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    satana13
    Изучаю sockets
    Это Программное обеспечение компьютерных сетей и информационных систем (конспект лекций) В.М.Баканов (1'231'213 байт) читаешь?

    что такое HSAGETSELECTERROR с четвертой строки?
    Это
    Код (Text):
    1. /*
    2.  * WSAGETSELECTERROR is intended for use by the Windows Sockets application
    3.  * to extract the error code from the lParam in the response
    4.  * to a WSAAsyncSelect().
    5.  */
    6. #define WSAGETSELECTERROR(lParam)           HIWORD(lParam)
    что такое add_sin из строки 10
    В твоем коде нет add_sin. Если ты имеешь в виду acc_sin, то это SOCKADDR_IN.