您的位置:
        
首页  
        >> 
SoftHub关联区           
     >> 主题: linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别[一个是秒一个是毫秒]  
        
[最新]     
         [回主站]
    
    
    
    
    
    
        
            linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别[一个是秒一个是毫秒]
        
     
    
    
    
 	 
    
		clq
		
        浏览(507) - 
        2018-02-10 18:56:29 发表
        
编辑
         
        
        
        
        关键字: openssl
        
转载 2015年06月19日 17:39:19
UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。
linux:
    struct timeval timeout={3,0};//3s
    int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,&timeout,sizeof(timeout));
    int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
    如果ret==0 则为成功,-1为失败,这时可以查看errno来判断失败原因
    int recvd=recv(sock_fd,buf,1024,0);
    if(recvd==-1&&errno==EAGAIN)
   {
              printf("timeout\n");
   }
windows:
int timeout = 3000; //3s
   int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,&timeout,sizeof(timeout));
   int ret=setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
http://idsips.blog.163.com/blog/static/4800127220116611500538/
        
        
        
		
		        
                
                        
   
     
	
	
     
	
    
    
     
    
    
    
    
 
    NEWBT官方QQ群1: 276678893
    可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
    但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
    验证问题说明申请入群原因即可.