如何捕获套接字类的异常?? 用什么异常类可以捕获套接字类的异常啊???不管是API还是MFC 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用select函数,int select( int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, const struct timeval* timeout);第四个参数就是捕捉异常的,当然也可以使用poll,这两个函数都可以跨平台使用 win32 API;Select();查一下MSDN吧 没有区别阿,MFC也支持普通的select和poll调用啊 bool CExSocketBase::Check(SOCKET sockfd, unsigned long dwTimesout, long nWaitFlags){ int ret; #ifdef OS_WIN fd_set fdarray; FD_ZERO(&fdarray); FD_SET((unsigned int)sockfd,&fdarray); long nTimeout = (long)dwTimesout; if(nWaitFlags) { timeval timeout; timeout.tv_sec = nTimeout/1000; timeout.tv_usec = nTimeout % 1000 * 1000; ret = select(sockfd + 1,0,0,&fdarray,&timeout); } else ret = select(sockfd + 1, 0, 0, &fdarray, NULL); if((int)ret == 1 && !FD_ISSET(sockfd,&fdarray)) return false;#else pollfd fdarray; fdarray.fd = sockfd; fdarray.events = POLLERR; fdarray.revents = 0; ret = poll(&fdarray, 1, dwTimesout); if(ret == 0 && !(fdarray.revents&POLLERR)) return false;#endif return true;} 想把CListView 和 一个功能界面漂亮的CListCtrl派生类结合起来。 请大家帮忙给侄儿取个名字 问题 共享文件与Socket哪个更加稳定?讨论 请问我如何在一个程序中运行另一个程序? 大家帮我看看为什么Update()老是出错啊!帮忙啊,大哥们 ie的抓图问题! 高分求教VC++6.0控制报表打印问题 请问:怎样在状态栏里显示程序执行的进度? 为什么在CMainFrame中不能映射WM_CHAR、WM_LBUTTONUP等消息????? 在静态函数中如何调用静态成员变量! “一键呼出“问题!
int select(
int nfds,
fd_set* readfds,
fd_set* writefds,
fd_set* exceptfds,
const struct timeval* timeout
);
第四个参数就是捕捉异常的,当然也可以使用poll,这两个函数都可以跨平台使用
Select();
查一下MSDN吧
{
int ret;
#ifdef OS_WIN
fd_set fdarray;
FD_ZERO(&fdarray);
FD_SET((unsigned int)sockfd,&fdarray);
long nTimeout = (long)dwTimesout;
if(nWaitFlags)
{
timeval timeout;
timeout.tv_sec = nTimeout/1000;
timeout.tv_usec = nTimeout % 1000 * 1000;
ret = select(sockfd + 1,0,0,&fdarray,&timeout);
}
else
ret = select(sockfd + 1, 0, 0, &fdarray, NULL);
if((int)ret == 1 && !FD_ISSET(sockfd,&fdarray))
return false;
#else
pollfd fdarray;
fdarray.fd = sockfd;
fdarray.events = POLLERR;
fdarray.revents = 0;
ret = poll(&fdarray, 1, dwTimesout);
if(ret == 0 && !(fdarray.revents&POLLERR))
return false;
#endif
return true;
}