Мои ламерские TCP client & server

Тема в разделе "WASM.NETWORKS", создана пользователем mc black, 5 июн 2010.

  1. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Написал тут.. отлаживаю. Вроде, как кажется, все писал по мануалам, практически переносил предельно упрощенно TCP эхо-сервер из статьи Криса Касперски Самоучитель игры на WINSOCK на ассемблер. В итоге сервер не запускается, потому что bind выдает вылетает с ошибкой WSAEFAULT тут:
    Код (Text):
    1.     mov sadr.sin_family,AF_INET
    2.     invoke htons,port
    3.     mov sadr.sin_port,ax
    4.     mov sadr.sin_addr,INADDR_ANY
    5.     invoke bind,sock,addr sadr,sizeof sadr
    6.     cmp eax,SOCKET_ERROR ;<---- тут ошибка eax==FFFFFFFFh (->WSAEFAULT)
    7.     jz cleansock
    Для желающих посмотреть, выкладываю исходники сервера и обращающегося к нему клиента.
     
  2. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    port dd 3128
     
  3. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Спасибо, litrovith! Поправил в клиенте и в сервере. bind отрабатывает как надо!

    А почему, интересно, сервер при запуске не может дождаться клиента и выключается. Мне нужно заключить accept в цикл или это необязательно?
     
  4. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    А, вот еще ошибки в трех местах у себя нашел и исправил, вот теперь выполняется все именно так, как было задумано. Классно =) Ещё раз большое спасибо за помощь! Рабочий пример TCP client & server, где они один раз обмениваются сообщениями и оба выключаются прикладываю во вложении. Плюс бонус - дерево вызовов синхронных сокетов из статьи Криса для клиента-сервера для TCP и UDP.
     
  5. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    invoke accept,sock,0,0

    http://msdn.microsoft.com/en-us/library/ms737526(VS.85).aspx
     
  6. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    litrovith, коротко, но ёмко. спасибище и мегареспектище за помощь и за то, что ткнул меня носом в msdn - туда мне и дорога, меньше тупых вопросов на форуме. короче параметры optional. если мне не нужны - не указываю.