利用多线程阻塞方法开发客户端程序,用SetSockOpt()函数设置了发送和接收超时时间均为10秒钟,我不明白的是,这10秒钟指的是什么。tcp有个确认重发机制,当发送方发送数据后没有收到接受方返回的确认信息,则重发,这10秒指的是不是从发送到接收到确认信息的时间?还是指的是send将数据拷贝的系统缓冲区,如果10秒没能拷贝成功,则重新拷贝?
  

解决方案 »

  1.   

    SetSockOpt
    你可以用来设置连接,发送或者接收超时 ,通常是用在阻塞模式下的
    例如,你设置连接超时为30秒
    当你使用WINSOCK里的connect函数连接到远程服务器时,如果在30秒内无法完成3次握手
    ,将返回失败,而默认情况下,大约需要120秒才返回同样,你设置发送超时为60秒
    如果你调用了send函数,如果在60秒内无法将SOCKET缓冲中的数据发送给对方,SEND函数将立即返回
    而默认情况下,这个数字比较大,好象在240秒这样同理可以理解接收
    当你调用RECV函数时,例如,60秒,如果60秒内无法接收到你指定长度的数据,RECV将返回失败
    而默认情况下将被阻塞并进入长时间等待