Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

сокеты

Hello comp,

проблема с сокетами на WinAPI. Вот фрагмент программы - инициализация сервера
(вызывается в WM_CREATE):

bool StartSockets()
{
if(WSAStartup(0x0202, &g_wsaData))
return 0;

g_hListenSocket = socket(AF_INET,SOCK_STREAM,0);
if(INVALID_SOCKET == g_hListenSocket)
return 0;

sockaddr_in local_addr;
local_addr.sin_family=AF_INET;
local_addr.sin_port=htons(MY_PORT);
local_addr.sin_addr.s_addr=0;
if (SOCKET_ERROR == bind(g_hListenSocket, (sockaddr *) &local_addr, sizeof(local_addr)))
return 0;

if(SOCKET_ERROR == WSAAsyncSelect(g_hListenSocket, g_hWnd, WM_SERVER_ACCEPT,
FD_ACCEPT | FD_CLOSE))
return 0;

if (SOCKET_ERROR == listen(g_hListenSocket, 0x100))
return 0;

// успешно
return 1;
}

все проходит успешно. Сервер ведет себя так, как будто он работает,
т.е. клиенты могут к нему подконнеститься и т.д. Но почему-то
сообщение WM_SERVER_ACCEPT (WM_USER+3) в WindowProc не приходит! Т.е.
я не могу отловить момент, когда клиент хочет подключиться к серверу,
с тем чтобы подключить его функцией accept.
В чем может быть дело? Может быть, неправильное использование
WSAAsyncSelect? Соответствующий аналог для UDP, а также с использованием MFC
CSocket для TCP прекрасно работает, но мне нужно именно WinAPI.

Ответить   Fri, 28 Jan 2005 00:26:26 +0300 (#305977)

 

Ответы:

А какое рельное значение возвращает у тебя функция после вызова?
здесь (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/wsaasyncselect_2.asp)
есть исчерпывающая во многом инфа по этой функции и коды возвращаемых значений
(правда на буржуйском:(()

Номер выпуска : 3974
Возраст листа : 495 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/306524
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Fri, 28 Jan 2005 07:43:39 +0300 (#306524)

 

Hello gena,

Friday, January 28, 2005, 7:43:39 AM, you wrote:

Спасибо, вопрос решился. Проблема была не в сокетах, а в том что
использовался недействительный hWnd.

Ответить   Sat, 29 Jan 2005 14:21:42 +0300 (#307031)