dual:taskHnd = WSAAsyncBetHostByName(hWnd,wMsg,hostname,buf,buflen);
应该为:
taskHnd = WSAAsyncGetHostByName(hWnd,wMsg,hostname,buf,buflen);
of((len==SOCKET_ERROR)&&(WSAGetLastError()==WSAWOULDBLOCK)){...}
应该为:
if((len==SOCKET_ERROR)&&(WSAGetLastError()==WSAWOULDBLOCK)){...}
看在我如此细心阅读这篇文章,哪位大发给我关于用VC++ socket 编的聊天室的服务器端和客户端的程序,我非常感谢!!!!
(发表于2003-3-28 10:41:00)
sosoo:COPY MSDN
(发表于2003-8-30 11:20:00)
实况狐狸:作者怎么会说WINDOWS是一个“非抢占式”多任务操作系统!?我想他指的是win95之前的哪个版本的Windows吧?那就此推断这篇文章是什么时候写的了??
(发表于2004-1-8 16:15:00)
flysnoopy1984:这文章我别的网站上看到过~~~~
后面因该还有几片呢~~~
(发表于2004-1-16 15:32:00)
notkiss:是什么网站?楼上能否告知?
(发表于2004-3-31 1:17:00)
xiaziyao:一点建议:
关于case UM_SOCK:
switch(lParam)
{
case FD_READ:
len = recv(wParam,lpBuffer,length,0);
break;
case FD_WRITE:
while(send(wParam,lpBuffer,len,0)!=SOCKET_ERROR)
break;
}
break;
这里在一般情况下不会出错,但是lparam是个32位的数据
但是关于WINSOCK非阻塞编程它在MSDN中是这样说的:
lparam低16位指定的是事件的类型,高16位是错误发生的
返回值。当有错误发生时,这个程序将存在严重的问题
(发表于2005-5-29 20:23:00)
xiaziyao:补充:
应该使用LOWORD(lparam)
(发表于2005-5-29 20:24:00)
..........................................................................
--------------------next---------------------
阅读(242) | 评论(0) | 转发(0) |