ChinaUnix.net
相关文章推荐:

linux connect 非阻塞

阻塞socket 定时connect 一台机器,如果对端不应答的话,第一次连接是syn_send状态,第二次连接时,connect会返回什么错误号?

by boldeagle - C/C++ - 2009-06-18 11:14:35 阅读(2568) 回复(7)

相关讨论

请问工作的大哥大姐们,阻塞connect()用到过吗?书上说她是不可移植的,thank you very much!!!:mrgreen::mrgreen::em02::em02:

by skai - C/C++ - 2006-10-10 14:50:55 阅读(962) 回复(0)
by bxb_koala - C/C++ - 2007-05-09 13:25:55 阅读(3618) 回复(11)

阻塞connect来实现,代码在后面给,先说问题(几种情况): 1. 有时运行没有任何输出(扫的是内网的另一台机器,有几个端口打开的),但是马上再运行一次又可以了(有时能扫出所有的端口,有时只有一部分) 2. 和1不同的是,第一次运行可以扫出部分端口,有时连续运行几次都只能扫出几个,而不是全部 3. 正常 我怀疑是在select之前就有connect返回,不知道这个是怎么处理的呢?网上也没找到这样的资料,而且多数端口扫描...

by zuii - C/C++ - 2008-06-13 23:21:16 阅读(5342) 回复(22)

在网上找到这么一个实现方法,不知道对不对,或者有没有更好的解释,更好的方法 网上是这样说的,方案是使用select 1.将打开的socket设为阻塞的 2.发connect调用,这时返回-1,但是errno被设为EINPROGRESS,意即connect仍旧在进行还没有完成. 3.将打开的socket设进被监视的可写(注意不是可读)文件集合用select进行监视, 如果可写,用 getsockopt(socket, SOL_SOCKET, SO_ERROR, 来得到error的值,如果为零,则connect成功

by enigma1983 - C/C++ - 2009-06-26 23:51:31 阅读(2186) 回复(5)

我写了一个客户端代码,想要让socket具有阻塞的特性,然后去不断的尝试connect. #include #include #include #include #include #include #include int main(void){ int s,r,ret; char buf[20]; struct sockaddr_in sock; s=socket(AF_INET,SOCK_STREAM,0); if(-1==s){ printf("socket() failed\n"); return 1; } if(0>fcntl(s,F_SETF...

by jeanlove - C/C++ - 2009-05-10 17:17:49 阅读(2289) 回复(5)

在网络编程中经常要用到阻塞式的socket,尤其在一些嵌入式场合。翻看了一下linux的man[man connect],有这么一段话: EINPROGRESS The socket is non-blocking and the connection cannot be completed immediately. It is possible to select(2) or poll(2) for completion by selecting the socket for writing. After select(2) indicates writability, use getsockopt(2) to read the SO_ERROR o...

by shibanyu - 网络技术文档中心 - 2008-11-19 20:05:21 阅读(1311) 回复(0)

代码如下: 实现验证http代理服务器的功能。 想法是使用阻塞socket+select做,但是可以连接成功,send后再select,select就不返回了(直到超时),我抓包看过了,服务器有返回包回来,为什么select就不返回了呢? #include #include #include #include #include #include #include #include #include #includ...

by cugb_cat - C/C++ - 2008-06-13 23:40:09 阅读(9174) 回复(16)

使用阻塞connect后,connect返回0,然后将这个连接加入epoll中 使用epoll_wait得到连接,这时events的值为20,这个值是什么意思? events & EPOLLOUT = 4 events & EPOLLIN = 0 当尝试往这个connect里写入时,报SIGPIPE出错,用netstat查看当前连接根本没有出去的连接。 太奇怪了,之前的程序是没问题的,后来改了一下结构,加入了一个类之后就变成这样了,各位牛人指点一下,这是怎么回事?

by confucian - C/C++ - 2006-02-17 15:03:30 阅读(1118) 回复(1)

client端使用阻塞socket进行connect时,即使connect的server ip 不存在,select也会返回1,只有到send时才真正失败,这到底是为什么? code如下: memset(&hints, 0, sizeof(hints)); hints.ai_socktype = SOCK_STREAM; hints.ai_family = PF_UNSPEC; hints.ai_protocol = IPPROTO_TCP; //hints.ai_flags = AI_NUMERICHOST; /* address info of server */ ret = getaddrinfo(pconinfo->dev, pinfo->szdst, &hints, &pres...

by coconutmm - C/C++ - 2010-08-24 12:16:38 阅读(16663) 回复(24)

目的:实现阻塞方式的connect 实现方法: socket,bind fcntl设置阻塞 connect select(sockfd+1, &r, &w, 0, &timeout); 如果select返回>0,判断FD_ISSET(sockfd, &r)和FD_ISSET(sockfd, &w) getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (void*)&error, (socklen_t*)&optlen); 判断error值确定是否连接成功 问题: 在AIX下 判断error值确定是否连接成功 可以取到正确的值, 但是在...

by calfordli - HP-UX - 2006-03-01 12:49:51 阅读(1194) 回复(0)