ChinaUnix.net
相关文章推荐:

linux recv超时

socket编程中常遇到超时问题,google一下得知,linux下的connect()和recv()设置 超时的具体方式不同,分别使用setsockopt和select,但是试了一下没成功,请教具体方法,最好有例程,谢谢!

by ruger - Linux环境编程 - 2007-10-25 08:41:00 阅读(4293) 回复(1)

相关讨论

1。本人在软件开发中遇到了一个令人匪夷所思的问题,在多线程中收集目标子网中主机的信息, 本人对recvfrom,recv等函数都设置了超时,平时运行时都没有发现问题,但是在压力测试的时候发现即使超时recvfrom,recv函数依然挂起,没有退出。 更令人奇怪的是在windows平台上,该程序运行良好,不会挂起,但是在linux上就发现了上面的问题。 2。以下是堆栈信息: 以下是recv挂起: Thread 5 (Thread -154604624 (LWP 19922)): ...

by caoxiao_njit - Linux环境编程 - 2010-07-27 15:28:56 阅读(6850) 回复(4)

我采用如下代码设置接收超时,却不起作用,谁帮下说明原因,谢谢. struct timeval strecvTimeOut; strecvTimeOut.tv_sec=soap->recv_timeout;; strecvTimeOut.tv_usec=0; if (setsockopt((SOAP_SOCKET)soap->socket, SOL_SOCKET,SO_RCVTIMEO, (char*)&strecvTimeOut, sizeof(strecvTimeOut))) { return 0; } r = recv(soap->socket, s, (int)n,MSG_WAITALL);

by mseaspring - C/C++ - 2007-10-22 12:40:13 阅读(4059) 回复(4)

recv返回超时的话,返回值是什么呢?

by wflyfox - C/C++ - 2007-05-21 15:32:14 阅读(7135) 回复(5)

客户端发给服务器一个命令后,客户端开始接受响应消息,但消息可能可能很长一次接受不完。怎么设置一直接受知道接受完毕呢? 具体程序我是这么写的,但是有问题:当最后一条消息接受完毕后,进入下一次循环后程序一直停留str = mysocket.recv()。可以设置等待接受超时吗?怎么设置? 请高手不吝赐教。谢谢。 mysocket.send('List File Name List") strRev = "" while(1): str = mysocket.recv() if not len(str): ...

by jsjszg - Python - 2008-04-16 14:05:08 阅读(18528) 回复(2)

int event_read(struct _conn *conn) {     int n;     char *data;     char buf[1024] = {0};     while ((n = read(conn->sfd, buf, 1024)) < 0)     {         if (errno == EINTR)             continue; &nb...

by 我要思考 - C/C++ - 2012-05-22 15:04:22 阅读(7568) 回复(17)

我现在利用socket来实现数据传递,在服务端单独开辟一个线程来专门接收数据并处理,因为客户端一次传来的数据是不定的(可能一次又多条记录),客户端采取的是循环发送的方法。 服务端伪码: [code] void* servethread(void* para) { ...... while((numbytes=recv(fd, buf, MAXDATASIZE, 0))>0){ if(strcmp(buf,"flag")) break; do_something(); } send(); ...... } [/code] ...

by boyhyc - C/C++ - 2006-03-30 16:30:48 阅读(3500) 回复(2)

是针对于线程的阻塞问题,不是进程 就是不要一直阻塞 阻塞到一定时间就停止 请问该如何实现?

by heack - C/C++ - 2005-04-25 22:36:09 阅读(6764) 回复(4)

我将buf设得很大,为什么一次还是接收不完 [code] #include #include #include #include #include #include #include #include int main (int argc, char *argv[]) { int sockfd; //char *buf = (char *)malloc(sizeof(char)*1024*1024); char buf[1024*1024]; struct sockaddr_in server_addr; struct hos...

by yjfuk - C/C++ - 2006-07-06 15:32:42 阅读(4957) 回复(6)

我在用socket,connect连接了http服务器后,用read从上面取网页,发现将所有的数据read完后,好像读取不到结束符,导致read阻塞在那里。我将超时时间设为1分钟,大部分都在接近1分钟的时候才结束,有些还超时了,而实际上读取数据时间不超过10秒,这是什么原因呢?

by cgp2001 - C/C++ - 2009-06-12 11:31:25 阅读(5419) 回复(7)

有哪些情况使得recv函数在没收到数据的时候就返回

by nigel2lm - C/C++ - 2008-03-02 20:24:37 阅读(2457) 回复(2)