[twsocket] Error 10022, WSA_FLAG_OVERLAPPED and TWsocket

2005-03-15 Thread John Harrison
Thanks for the quick response Francois.
OK, I will dig deeper in my code to find the cause of the error.
/John

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Error 10022, WSA_FLAG_OVERLAPPED and TWsocket

2005-03-15 Thread Francois Piette
> On some platforms my applications halts with the following error message:
> Error 10022 in function
> WSAAsyncSelect
> Invalid argument

This means WSAAsyncSelect winsock function received an invalid argument. This 
can only be possible
when the socket has been closed outside of the component. This could happend 
with a bug somewhere in
your code when CloseHandle is called with an invalid argument which is - 
unfortunately - the socket
handle.

It may also be caused by buggy Winsock LSP or buggy system software such as 
personal firewall that
doesn't handle properly asynchronous sockets, or by buggy trojan horse, virus 
or spyware.

> I would like to know how/where I can set the flag in TWSocket

Do _not_ use this flag with TWSocket.

--
[EMAIL PROTECTED]
Author of ICS (Internet Component Suite, freeware)
Author of MidWare (Multi-tier framework, freeware)
http://www.overbyte.be

- Original Message - 
From: "John Harrison" <[EMAIL PROTECTED]>
To: 
Sent: Tuesday, March 15, 2005 11:00 AM
Subject: [twsocket] Error 10022, WSA_FLAG_OVERLAPPED and TWsocket


> On some platforms my applications halts with the following error message:
> Error 10022 in function
> WSAAsyncSelect
> Invalid argument
>
> I think it may be due to how the IP socket is created, based on the
> following info I found on Microsofts web site:
> The Winsock 2 socket flag WSA_FLAG_OVERLAPPED needs to be set if the socket
> will be used in non-blocking mode when running on Windows NT 4.0. Failure to
> set this flag can result in subsequent Winsock API failure. For example, on
> Windows NT 4.0, WSAConnect fails with error code 10022, WSAEINVAL if the
> socket was created without this flag and the socket is placed into non-
> blocking mode prior to it being called.
> MORE INFORMATION
> A socket must be created with its overlapped I/O attribute set if overlapped
> I/O is to be performed using the socket. This can be done either by creating
> the socket with the WSASocket API with the WSA_FLAG_OVERLAPPED, or by
> creating the socket via the socket API. However, if the socket will be set
> to non-blocking mode (on Windows NT 4.0), the socket must also be created
> with its overlapped attribute set, even if no overlapped I/O will be
> performed with the socket. A socket is placed into non-blocking mode when
> either the WSAEventSelect or WSAAsyncSelect APIs are called or if the
> FIONBIO command is used in the ioctlsocket API.
>
> To achieve cross-platform portability between Windows 95 and Windows NT 4.0,
> you are strongly encouraged to employ the WSA_FLAG_OVERLAPPED flag when
> using the WSASocket API, even if no overlapped I/O operations are to be
> performed with the socket.
>
> I would like to know how/where I can set the flag in TWSocket
>
> /John
>
>
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
>


-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


[twsocket] Error 10022, WSA_FLAG_OVERLAPPED and TWsocket

2005-03-15 Thread John Harrison
On some platforms my applications halts with the following error message:
Error 10022 in function
WSAAsyncSelect
Invalid argument
I think it may be due to how the IP socket is created, based on the 
following info I found on Microsofts web site:
The Winsock 2 socket flag WSA_FLAG_OVERLAPPED needs to be set if the socket 
will be used in non-blocking mode when running on Windows NT 4.0. Failure to 
set this flag can result in subsequent Winsock API failure. For example, on 
Windows NT 4.0, WSAConnect fails with error code 10022, WSAEINVAL if the 
socket was created without this flag and the socket is placed into non- 
blocking mode prior to it being called.
MORE INFORMATION
A socket must be created with its overlapped I/O attribute set if overlapped 
I/O is to be performed using the socket. This can be done either by creating 
the socket with the WSASocket API with the WSA_FLAG_OVERLAPPED, or by 
creating the socket via the socket API. However, if the socket will be set 
to non-blocking mode (on Windows NT 4.0), the socket must also be created 
with its overlapped attribute set, even if no overlapped I/O will be 
performed with the socket. A socket is placed into non-blocking mode when 
either the WSAEventSelect or WSAAsyncSelect APIs are called or if the 
FIONBIO command is used in the ioctlsocket API.

To achieve cross-platform portability between Windows 95 and Windows NT 4.0, 
you are strongly encouraged to employ the WSA_FLAG_OVERLAPPED flag when 
using the WSASocket API, even if no overlapped I/O operations are to be 
performed with the socket.

I would like to know how/where I can set the flag in TWSocket
/John

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be