franky
May 15th, 1999, 11:07 PM
After the following function ran and completes with WSAEWOULDBLOCK error. I never receive the message WM_USER+1 from UINT message. what could be wrong?
WSAAsyncSelect(sock, hwnd, WM_USER+1, FD_READ|FD_WRITE|FD_CLOSE);
Here's the code
BOOL Winsock::Connect(CString host, CString user, CString pass, long port)
{
//
// Use inet_addr() to determine if we're dealing with a name
// or an address
//
IN_ADDR iaHost;
LPHOSTENT lpHostEntry;
SOCKADDR_IN saServer;
int re;
TRACE0("Getting host...\n");
iaHost.s_addr = inet_addr(host);
if (iaHost.s_addr == INADDR_NONE)
{
// Wasn't an IP address string, assume it is a name
lpHostEntry = gethostbyname(host);
}
else
{
// It was a valid IP address string
lpHostEntry = gethostbyaddr((const char *)&iaHost,
sizeof(struct in_addr), AF_INET);
}
if (lpHostEntry == NULL)
{
TRACE0("Error getting host: ");
TRACE("%d", WSAGetLastError());
return FALSE;
}
saServer.sin_family=AF_INET;
saServer.sin_port = htons((u_short)port);
saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
TRACE0("Connecting...\n");
re = connect(sock, (LPSOCKADDR)&saServer, sizeof(saServer));
if (re == SOCKET_ERROR)
{
file://get error
re = WSAGetLastError();
if(re!=WSAEWOULDBLOCK)
{
TRACE0("socket error ");
TRACE("%d\n", WSAGetLastError());
closesocket(sock);
return FALSE;
}
}
}
http://innocreations.cjb.net
WSAAsyncSelect(sock, hwnd, WM_USER+1, FD_READ|FD_WRITE|FD_CLOSE);
Here's the code
BOOL Winsock::Connect(CString host, CString user, CString pass, long port)
{
//
// Use inet_addr() to determine if we're dealing with a name
// or an address
//
IN_ADDR iaHost;
LPHOSTENT lpHostEntry;
SOCKADDR_IN saServer;
int re;
TRACE0("Getting host...\n");
iaHost.s_addr = inet_addr(host);
if (iaHost.s_addr == INADDR_NONE)
{
// Wasn't an IP address string, assume it is a name
lpHostEntry = gethostbyname(host);
}
else
{
// It was a valid IP address string
lpHostEntry = gethostbyaddr((const char *)&iaHost,
sizeof(struct in_addr), AF_INET);
}
if (lpHostEntry == NULL)
{
TRACE0("Error getting host: ");
TRACE("%d", WSAGetLastError());
return FALSE;
}
saServer.sin_family=AF_INET;
saServer.sin_port = htons((u_short)port);
saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
TRACE0("Connecting...\n");
re = connect(sock, (LPSOCKADDR)&saServer, sizeof(saServer));
if (re == SOCKET_ERROR)
{
file://get error
re = WSAGetLastError();
if(re!=WSAEWOULDBLOCK)
{
TRACE0("socket error ");
TRACE("%d\n", WSAGetLastError());
closesocket(sock);
return FALSE;
}
}
}
http://innocreations.cjb.net