int nNetTimeout=1000;//1秒
//设置接收超时
setsockopt(csocks[i],SOL_SOCKET,SO_RCVTIMEO,(char *)&nNetTimeout,sizeof(int));
...
...
...
s=recv(dlg->csocks[n],dlg->buff[n],100,MSG_WAITALL);
防超时,为了跳过recv执行下面的语句,防阻塞
但是,无法达到效果
请诸位多提宝贵意见

解决方案 »

  1.   

    setsockopt 设置成功了吗?
    dlg->csocks[n] 与上面的 csocks[i] 是同一个socket?
      

  2.   

    是同一个,前一个是初始化时调用的,后一个是接收时调用的
    setsockopt需要判断成功?我来试试。
      

  3.   

    检查setsockopt返回值看是否设置成功?
      

  4.   

    setsockopt的位置不正确,在初始化时csock【i】都是无效套接字
    感谢关注,分不多,散了