当前位置: 技术问答>linux和unix
求linux下 设置socket接收超时的方法
来源: 互联网 发布时间:2016-04-30
本文导语: 求linux下 设置socket接收超时的方法 就是while(recv(*****)>0) 怎么设置这个recv的超时? 好像用什么select函数,我不是很懂 希望大家能够帮帮我。 | int safe_recv(int fd, char *net_packa...
求linux下 设置socket接收超时的方法
就是while(recv(*****)>0)
怎么设置这个recv的超时? 好像用什么select函数,我不是很懂 希望大家能够帮帮我。
就是while(recv(*****)>0)
怎么设置这个recv的超时? 好像用什么select函数,我不是很懂 希望大家能够帮帮我。
|
int safe_recv(int fd, char *net_package)
{
int sendd = 0, n;
unsigned char *p = (unsigned char *)net_package;
fd_set send_fd;
struct timeval net_timer;
FD_ZERO(&send_fd);
FD_SET(fd, &send_fd);
net_timer.tv_sec=20;/* 超时定义 20 秒*/
net_timer.tv_usec=0;
while(sendd != sizeof( package)) {
if(select(fd + 1,&send_fd,NULL , NULL, &net_timer)
{
int sendd = 0, n;
unsigned char *p = (unsigned char *)net_package;
fd_set send_fd;
struct timeval net_timer;
FD_ZERO(&send_fd);
FD_SET(fd, &send_fd);
net_timer.tv_sec=20;/* 超时定义 20 秒*/
net_timer.tv_usec=0;
while(sendd != sizeof( package)) {
if(select(fd + 1,&send_fd,NULL , NULL, &net_timer)