摘要: 值-结果参数(socket编程中一到七的structsockaddr_in的长度参数)1.概念:当函数参数是从内核到进程时,函数被调用时参数大小是一个值,它告诉内核该参数的结构大小避免内核写操作越界,函数返回时,参数的结构大小又是一个结果,它告诉进程内核写进数据的多少,这种参数叫做值-结果参数。2.例子:八个socket编程中涉及的函数中,总是通过指针来传递指向结构的指针。同时结构的长度也作为参数来传递,但是其传递的方法取决于结构的传递方向:侍从内核到进程还是从进程到内核。详细如下:1>.参数从进程到内核:bind、connect从进程到内核传递参数,它明确知道要拷贝多少以及拷贝的数据。 阅读全文
posted @ 2011-07-25 21:37 hnrainll 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对于在内部是以低位字节优先方式存储数据的机器,在Internet上传输数据时就需要进行转换。第一个结构类型是:struct sockaddr 该类型是用来保存socket信息的structsockaddr{ unsigned shortsa_family; /* 地址族, AF_xxx */ charsa_data[14]; /* 14 字节的协议地址 */};sa_family一般为AF_INET;sa_data则包含该socket的IP地址和端口号。另外还有一种结构类型:structsockaddr_in 阅读全文
posted @ 2011-07-25 21:31 hnrainll 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: 我们已经知道,当把套接口地址传递给套接口函数时,总是通过指针传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递的方式取决于结构的传递的方向:从进程到内核,还是从内核到进程。 1、从进程到内核传递的套接口结构有3个函数:bind,connect和sendto,这三个函数的一个参数是指向套接口结构的指针,另一个是结构的大小,如:structsockaddr_inserv;/*fill in serv[]*/connect(sockfd,(SA*)&serv,sizeof(serv)); 由于从进程到内核的参数是指向结构的指针和结构的大小,所以从进程到内核拷贝的数据是确 阅读全文
posted @ 2011-07-25 21:30 hnrainll 阅读(2025) 评论(0) 推荐(0) 编辑