ChinaUnix.net
相关文章推荐:

recvfrom 缓冲区数据类型

我的代码如下: 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 阅读(2941) 回复(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 阅读(2123) 回复(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 阅读(9315) 回复(6)

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

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

各位大侠,小弟遇到一个问题,一个已经设置为非阻塞socket的socket在某种异常情况下(如反复拔插设备网线时会出现)recvfrom时居然阻塞住了,大家有遇到同样的问题么?有什么可能导致此问题发生? ....... ioctl(sock, FIONBIO, &TRUE); ..... recvlen = recvfrom( sock ,buf,len,0,(SOCKADDR*)&from,(socklen_t*)&fromlen ); ps:程序中由于公司历史原因未使用select,而是使用的while(1)+sleep的方式,我想尽管可能会有问题,但是...

by weweyangyang - C/C++ - 2009-08-31 17:22:16 阅读(1650) 回复(2)

各位兄弟,本人程序遇到奇怪的问题,描述如下: OS:linux 函数:recvfrom 现象:当接收流量较少的情况下,该系统调用工作完全正常,在接受流量大的情况下,出现EFAULT错误。 经查,EFAULT错误是由于参数的问题引起的。 我的recvfrom调用如下: recvfrom(rr_sock, (void *)buffer, sizeof(buffer), 0, (struct sockaddr *)&addr, (socklen_t *)&addr_len); 在出现EFAULT错误后,打印buffer,addr,addr_len的地址,发现addr,...

by guotie - C/C++ - 2009-04-20 10:08:44 阅读(1565) 回复(3)

recvfrom 注意点 ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); 最后一个参数fromlen虽然是value-result类型参数,但是传递地块时一定要初始化成from参数的大小,否则出错。当调用返回时按实际地址所占的空间进行修改。 我出现的错误是就是没有初始化成from长度, 导致读取对方IP时出错,最后一位全部成了0了。。。。 本文来自ChinaUnix博客,如果...

by wolf711988 - Linux文档专区 - 2009-02-17 23:46:48 阅读(831) 回复(0)

c/s采用UDP连接方式,使用sendto()和recvfrom()收发数据,客户端注册一个接收SIGALRM信号的信号处理程序。 假如在客户端recvfrom()服务端发送的数据的时候,产生一个SIGALRM信号,因此客户端执行信号处理程序(加入信号处理程序 只有简单的return语句),当从信号处理函数返回的时候,recvfrom()为什么返回值不是小于0?errno为什么不是EINTR?

by xiaozhu2007 - C/C++ - 2008-08-17 23:06:38 阅读(3117) 回复(6)

下面几行代码中我对整形变量n不明白,recvfrom返回的应该是BUFFERMAX这个数值,或者是比他小的一个值(里面应该是有内容的)。克为什么后面一行要给他赋值成0那? char buffer[BUFFERMAX]; n = recvfrom(sockfd, buffer, BUFFERMAX, 0, NULL, NULL); buffer[n] = 0; 这三行代码摘自unix网络编程套接口API中8.6节

by tony124cft - Linux环境编程 - 2008-04-02 21:56:38 阅读(3292) 回复(6)

先贴出部分代码: #define SA struct sockaddr int n; socklen_t len; char mesg[MAXLINE]; SA* pcliaddr; for ( ; ; ) { len = sizeof(pcliaddr); n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len); printf("i have received messages\n"); printf("The numbers of the charactors I have re...

by kuige0803 - C/C++ - 2007-07-18 17:16:45 阅读(1422) 回复(5)

1。如下代码用来设置内核过滤的: [quote] struct sock_fprog Filter; if(setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter))<0){ perror("setsockopt"); close(fd); exit(1); } [/quote] 请问具体如何设置struct sock_fprog Filter变量 2。recv/recvfrom用来接收数据包,应该是不管发送数据包的,我编写了一个socket程序用来捕捉数据包,并实时统计网络流量,但是用recv/...

by ruger - Linux环境编程 - 2007-05-04 15:22:09 阅读(1742) 回复(0)