在完善我的跨平台的发邮件类库时,select做延时windows没效果,Linux正常,还以为我代码写错了呢;在网上搜素下也没发现类似说法,于是我就写了段小测了,果然select延时在windows上缩水了
#include <iostream>
#include <time.h>
#ifdef WIN32
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#else
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
using namespace std;
int main()
{
struct timeval timeWait;
timeWait.tv_sec = 0;
timeWait.tv_usec = 10000;
int liRecvCnt = 0;
time_t t1, t2;
time(&t1);
while(liRecvCnt < 10)
{
timeWait.tv_sec = 0;
timeWait.tv_usec = 500000;
liRecvCnt++;
select(0, NULL, NULL, NULL, &timeWait);
}
time(&t2);
cout<<t2-t1<<endl;
return 0;
}
在VS2005上输出是 0
在Linux上输出是 5 S
你有什么想法,敬请留言
QQ:16645709