WSARecv

Luo_Bryant 2013-04-06 11:55:59
#include <Winsock2.h>
#include <stdio.h>

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}


if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return;
}


SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(4567);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

WSABUF wsabuf;
wsabuf.buf = new char[200];
wsabuf.len = 200;
DWORD dwRead;
DWORD dwFlag = 0;

WSARecv(sockClient,&wsabuf,1,&dwRead,&dwFlag,NULL,NULL);

send(sockClient,"This is lisi",strlen("This is lisi"),0);

closesocket(sockClient);
WSACleanup();
}




这是客户端,服务端采用WSAEventSelect模型,不过服务端是接收不到 This is lisi(客户端发送) 的,然而我把这句 WSARecv(sockClient,&wsabuf,1,&dwRead,&dwFlag,NULL,NULL);注释掉的话,服务端就可以接收得到数据了,这是什么情况呀???
...全文
211 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Luo_Bryant 2013-04-07
  • 打赏
  • 举报
回复
呵呵。。。我用ioctlsocket设置为非阻塞了
杀意已决 2013-04-07
  • 打赏
  • 举报
回复
引用 8 楼 luoshao20120430 的回复:
引用 7 楼 boxmanstan 的回复: 你可以去看看socket的阻塞模式和非阻塞模式.开一个线程多方便 我现在想知道怎么设置非阻塞呀,请教。。。
你自己不去看,给你说了,设置完还得对WSARecv进行处理,叫你开线程你不听,懒猪
Luo_Bryant 2013-04-07
  • 打赏
  • 举报
回复
引用 7 楼 boxmanstan 的回复:
你可以去看看socket的阻塞模式和非阻塞模式.开一个线程多方便
我现在想知道怎么设置非阻塞呀,请教。。。
杀意已决 2013-04-07
  • 打赏
  • 举报
回复
你可以去看看socket的阻塞模式和非阻塞模式.开一个线程多方便
Luo_Bryant 2013-04-07
  • 打赏
  • 举报
回复
引用 5 楼 boxmanstan 的回复:
默认是阻塞的,你可以设置非阻塞或者开一个线程执行WSARecv
怎么设置非阻塞???
杀意已决 2013-04-07
  • 打赏
  • 举报
回复
默认是阻塞的,你可以设置非阻塞或者开一个线程执行WSARecv
Luo_Bryant 2013-04-07
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
WSARecv阻塞了等待服务器端的发送数据
可是WSARecv不是非阻塞的么?不管服务端有没有数据发送过来,WSARecv也会立即返回的呀 ,不是吗?? 求详细指点的。。。
Eleven 2013-04-07
  • 打赏
  • 举报
回复
WSARecv阻塞了等待服务器端的发送数据
wwwhhb4002 2013-04-07
  • 打赏
  • 举报
回复
这是个好问题,同求答案
Luo_Bryant 2013-04-06
  • 打赏
  • 举报
回复
WSARecv不是非阻塞的么?不管服务端有没有数据到来,WSARecv也会立即返回的呀 ,不是吗??

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧