读书人

UNIX网络编程-套接字编程简介(3)

发布时间: 2013-09-18 14:17:40 作者: rapoo

UNIX网络编程---套接字编程简介(三)

UNIX网络编程---套接字编程简介

一、概述

从这里开始正式开始网络编程之旅,所有的函数都是基本的库函数。这些都是网络编程的基础。Come on!!!!

二、套接字地址结构

大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议簇都定义它自己的套接字地址结构。这些机构的名字均以sockaddr_开头,并以对应每个协议簇的唯一后缀结尾。

1) Ipv4套接字地址结构

这是一个很常用的套接字。定义在<netinet/in.h>

Struct in_addr{

In_addr_ts_addr; //32位

};

Struct sockaddr_in{

Uint8_t sin_len;

Sa_family_t sin_family;

In_port_t sin_port;

Struct in_addr sin_addr

Char sin_zero[8];

};
从进程到内核传递套接字地址结构的4个套接字函数(bind、connect、sendto、sendmsg)都要调用sockargs函数,该函数从进程复制套接字地址结构,并显示地把它的sin_len字段设置成早先作为参数传递给这4个函数的该地址结构的长度。从内核到进程传递套接字地址结构的5个套接字函数分别是accept、recvfrom、recvmsg、getpeername和getsockname,均在返回到进程之前设置sin_len字段。

Ipv4地址和TCP或UDP端口号在套接字地址结构中总是以网络字节来存储。

套接字地址结构仅在给定主机上使用:虽然结构中的某些字段用在不同主机之间的通信,但是结构本身并不在主机之间传递。

2) 通用套接字地址结构

在头文件 #include <sys/socket.h>

Struct sockaddr{

Uint8_tsa_len;

Sa_family_t sa_family;

Char sa_data[14];

};

三、值—结果参数

四、字节排序函数

五、字节操作函数

六、Inet_aton、inet_addr和inet_ntoa函数

七、Inet_pton和inet_ntop函数

八、Sock_ntop和相关函数

九、Readn、writen和readline函数

读书人网 >编程

热点推荐