ChinaUnix.net
相关文章推荐:

recvfrom 如何设置超时时间

如何recvfrom设置成非阻塞

by wangqi0021 - C/C++ - 2008-05-16 13:05:00 阅读(5915) 回复(4)

相关讨论

本帖最后由 dolphin836 于 2011-06-08 16:23 编辑 1.创建raw socket sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP)) 2.置网卡为混合模式 3.接收数据 nRead = recvfrom(nSockfd,byRecvBuffer,1058,0,NULL,NULL); 我现在程序在虚拟机正常 到板子里就停在recvfrom这个 想设置为非阻塞模式看看 请问怎么写?

by dolphin836 - C/C++ - 2011-06-11 10:05:59 阅读(10021) 回复(14)

写了个程序发送icmp数据,往没开机的ip地址发送,就会死到recvfrom处,可我已经设置超时值啊,为什么呢,请高手指教。谢谢

by dsd999 - C/C++ - 2004-12-22 18:12:36 阅读(10925) 回复(7)

udp客户端从服务器端接受数据,服务器端发送的数据大小不定 #define MAX 100 char recvdata[MAX] while(1){ int n; n=recvfrom(sockfd,recvdata,MAX,0,NULL,NULL); if(n==0) return 0; /* 把每次接收到的 recvdata[n]依次放到 data中 */ } 我想循环把每次收到的数据全部放到data中,因为长度不确定,所以不能char data[len]; 如果每次先 malloc,再memcpy,再free,效率又太低了,请问怎么做? 谢谢

by darkslack - C/C++ - 2007-09-29 18:15:57 阅读(5812) 回复(17)

本帖最后由 okocha-jay 于 2010-03-17 17:25 编辑 代码在后面; 查过低水位,1字节; 我是想验证一下,如果UDP服务器设置的接收缓冲区只有8字节, 而客户发来10字节,看看收到了什么,有没什么错误; 但是在服务器bing之前调用了setsockopt,就算客户端发数据, 服务进程还是阻塞在recvfrom。 用#if 0 取消那段设置代码,才能收到数据。 请问大家是什么原因?(本机的默认接收缓冲区好像有110KB)

by okocha-jay - C/C++ - 2010-03-18 12:12:43 阅读(3686) 回复(10)

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 阅读(6875) 回复(4)

程序用udp和服务器通讯,一个线程负责发送,一个线程负责接收,发送和接收是异步的,有些消息服务器可能就不回了, 现在跑了一段时间后,比如一天,发现服务器有返回,但是我这边接收线程没动静,重启下程序就开始接收了,这个怎么办?

by ww2000e - C/C++ - 2011-08-29 12:01:26 阅读(1938) 回复(1)

我的代码如下: ah_int_t ah_pro_client_listen(ah_char_t *prorxpkt, ah_uint32_t * pktlen) { ah_uint_t len = 0; ah_uint_t fromlen = 0; ah_uint_t from_len = 0; fd_set fdR; ah_uint_t max_socket = 0; ah_int_t rc = 0; struct sockaddr_in from; struct sockaddr_in from_ssl; struct timeval prosel = {0,500...

by godguy - C/C++ - 2007-11-16 15:04:54 阅读(2946) 回复(2)

以下是一段代码 int main() { /* 变量定义 */ int sockfd; /* 接受 socket 套节字 */ int ret; /* 计数器 */ int length; /* split数组长度 */ char buf[2048]; struct sockaddr_in addr; /* create socket */ sockfd = socket(AF_INET, SOCK_DGRAM, 0); /* 主机字节顺序 */ ...

by stiandao - C/C++ - 2007-03-07 23:40:23 阅读(2126) 回复(4)

recvfrom函数中 ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len); 最后两个变量address和address_len 在调用这函数之前,这两个变量需要赋值吗? 或者是只定义个 struct sockaddr_in address; socklen_t address_len; 然后直接调用recvfrom后,对方的ip地址会自动赋给了address,address_...

by liumilan2009 - C/C++ - 2011-06-27 15:07:47 阅读(9364) 回复(6)

第一次用网络编程,使用了原始套接字的UDP。想实现的功能是服务器接受到来自客户端的数据然后返回给客户端,但是会出现以下问题: (1)在recvfrom函数接时,得到的客户端的地址信息(struct sockaddr_in client)中的端口号为0,以至于,服务器返回数据的sendto函数不能执行成功。 (2)只要服务器接收到来自客户端的信息,客户端就不停的在循环、不停的打印出消息,而且消息的内容始终是第一条的消息。 代码如下所示,请各位指正...

by whyliyi - C/C++ - 2010-09-01 22:38:04 阅读(11444) 回复(12)