Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

winsock, Connect после WSAASyncSelect завершается с ошибкой

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Malcolm



Зарегистрирован: 12.06.2004
Сообщения: 187
Откуда: Хабаровск

СообщениеДобавлено: Пн Мар 13 2006 20:25    Заголовок сообщения: winsock, Connect после WSAASyncSelect завершается с ошибкой Ответить с цитатой

Код:
SocketHandle := winsock.Socket(AF_Inet, Sock_Stream, IPProto_TCP);
Addr.sin_family:=AF_Inet;
Addr.sin_addr.S_addr:=Inet_Addr( pansichar(FIP) );
Addr.sin_port:=HToNS(FPort);
FillChar(Addr.sin_zero,SizeOf(Addr.sin_zero),0);
code := WSAAsyncSelect(socketHandle, sockWindow, FMSG, FD_Read or FD_Write or FD_Close or FD_connect);
if code = 0 then code := winsock.Connect(socketHandle,Addr,SizeOf(TSockAddr));
if code = 0 then
   begin
   ...
   end else begin
   FErrorCode := WSAGetLastError;
   //Здесь ошибка 10038 WSAENOTSOCK
   ...
   end;


в таком коде возникает ошибка 10038 WSAENOTSOCK, в Windows SDK по этому поводу написано следующее
Цитата:
Socket operation on non-socket.

An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.

т.е. хендл вовсе не хендл. при этом дебаггером смотрел что значение handlesocket не изменяется после вызова WSAAsyncSelect, и завершается вызов без ошибки. а следом коннект - и ошибка. при этом если делать несколько вызовов WSAAsyncSelect подряд то ошибки ни на одном не возникают.

В чем может быть дело? не могу придумать никакого объяснения такому поведению ....
_________________
АсЬки ТуТ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...