我用winsocket 写了一个服务器测试程序,请问如何为这个程序设置一个超时器,比如再recv 时候,如果在设定时间内没有取到任何数据,则就返回,而不必一直阻塞。
解决方案 »
- 请问各位,关于CSplitterWnd的问题...
- C++与C
- wince中如何把内存dc保存为位图文件
- 界面和程序的关系————刚学VC,一直困扰的一个说不太清的问题
- 对话框的OnInitDialog()函数问题
- 【一直没有解决的老问题】OnLButtonDown中得到的点的座标要转换为在 整个ScrollView中的座标
- 为什么我用不了SHbrowseforfolder的BIF_NEWDIALOGSTYTLE属性?
- 市面上有哪些4口的采集卡卖?
- 有关CTypedPtrArray的问题!
- 我的最高分,懂sdk的朋友请帮忙
- 关于EDITBOX如何显示乱码的问题?
- 如何在使用unicode字符集的时候 把一个char*对象赋值给一个CString对象
WaitForSingleObject可以做到,等待一定时间没有结束就继续
利用WaitForSingleObject来等待,它的最后一个参数就是设置超时的
FD_SET(sock_bc,&stRead);
setimeout.tv_sec = 0;
setimeout.tv_usec = 0;
result = select(0,&stRead,NULL,NULL,&setimeout);
if(result > 0)
{
from_len = sizeof(SOCKADDR);
memset(&Recv_Pkt,0,sizeof(Recv_Pkt));
result = recvfrom(sock_bc,(char*)&Recv_Pkt,sizeof(Recv_Pkt),
0,(SOCKADDR*)&sck_from_bc,&from_len);
}