当前位置: 技术问答>linux和unix
关于Linux下的socket connect的非阻塞用法
来源: 互联网 发布时间:2016-11-01
本文导语: 如题,请教各位大神,如何在Linux下使用connect的非阻塞用法。在网上看到一个方法,不过他说在unix下好用,但在Linux下就不行。不知怎样解决这个问题。 谢谢 | int flags,error; socklen_t len; ...
如题,请教各位大神,如何在Linux下使用connect的非阻塞用法。在网上看到一个方法,不过他说在unix下好用,但在Linux下就不行。不知怎样解决这个问题。
谢谢
谢谢
|
int flags,error;
socklen_t len;
fd_set rset, wset;
struct timeval tval;
conn_fd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(server_port);//将主机字节顺序转换到网络字节顺序
serv = gethostbyname(SERVER_IP);// 可以用inet_aton()
serv_addr.sin_addr = *((struct in_addr *)serv->h_addr);
flags == fcntl(conn_fd, F_GETFL, 0);
fcntl(conn_fd, F_SETFL, flags | O_NONBLOCK);
error=0;
if((ret = connect(conn_fd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)))
socklen_t len;
fd_set rset, wset;
struct timeval tval;
conn_fd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(server_port);//将主机字节顺序转换到网络字节顺序
serv = gethostbyname(SERVER_IP);// 可以用inet_aton()
serv_addr.sin_addr = *((struct in_addr *)serv->h_addr);
flags == fcntl(conn_fd, F_GETFL, 0);
fcntl(conn_fd, F_SETFL, flags | O_NONBLOCK);
error=0;
if((ret = connect(conn_fd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)))