网络编程设置时间超时

来源:互联网 发布:python输出中文 编辑:程序博客网 时间:2024/04/30 05:53
struct timeval tv; /* timeval and timeout stuff added by davekw7x */            int timeouts = 0;            tv.tv_sec = 3;            tv.tv_usec = 0;            if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv,  sizeof tv))            {              perror("setsockopt");              return -1;            }            if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof their_addr) == -1) {                perror("connect");                exit(1);            }            while (((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) && (++timeouts < 1000)) { /* loop to retry in case it timed out; added by davekw7x */                perror("recv");                printf("After timeout #%d, trying again:\n", timeouts);            }            printf("numbytes = %d\n", numbytes);            buf[numbytes] = '\0';            printf("Received: %s",buf);
原创粉丝点击