我用AcceptEx投递了10个套接字,客户测试时使用connect连接了5个,但未发送数据,一段时间后,使用
BOOL flag = TRUE;
int len = sizeof(BOOL);
int res = getsockopt(work->pIo->sClient,SOL_SOCKET,SO_CONNECT_TIME,(char*)&flag,&len);
检查那10个套接字,结果全部返回0,为什么?

解决方案 »

  1.   

    SO_CONNECT_TIME的参数式DWORDDWORD flag;
    int len = sizeof(DWORD);
    int res = getsockopt(work->pIo->sClient,SOL_SOCKET,SO_CONNECT_TIME,(char*)&flag,&len);
      

  2.   

    那是我理解错了,但是由于超时(比如flag大于20秒),我调用TransmitFile来关闭套接字时,为什么要阻塞呀?
      

  3.   

    是不是连接了,不发数据用getsockopt才能得到已经连接的时间
    而连接了又发送了数据,用getsockopt得到的还应该是0xffffffff?