linux网络编程二十:socket选项:SO_RCVTIMEO和SO_SNDTIMEO
SO_RCVTIMEO和SO_SNDTIMEO ,它们分别用来设置socket接收数据超时时间和发送数据超时时间。 因此,这两个选项仅对与数据收发相关的系统调用有效,这些系统调用包括:send, sendmsg, recv, recvmsg, accept, connect 。 这两个选项设置后,若超时, 返回-1,并设置errno为EAGAIN或EWOULDBLOCK. 其中connect超时的话,也是返回-1, 但errno设置为EINPROGRESS 1. 代码:设置connect超时时间 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <assert.h> #include <fcntl.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> //超时连接 int timeout_connect(const char *ip, int port, int time); int main(int argc, char **argv) { if (argc != 3) {