gethostent

2.套接字的调用
TCP/IP的系统调用主要是通过对套接字的操作来实现的,下面给出了部分常用的TCP/IP系统调用:
�scoket 创建套接字
�bind 为套接字赋一个名字
�connect 启动一个连接
�accept 接受连接
�listen 监听连接
�write/send 发送信息
�read/recv 接收信息
�close 关闭套接字
三、UNIX网络库例程的应用
网络库例程的主要用途是确定和建立网络地址。
在客户方与服务方进行通信前,在远程节点上确定一个服务需要进行多级映射。为便于使用,每个服务被指定一个名字,这个名字必须被翻译成网络地址,最后,该地址被用来确定一个物理位置和到服务的路径。可见,确定远程节点上的一个服务需要三级映射,这三级映射的具体实现随着网络结构不同而有所变化。
UNIX网络库例程是C程序语言函数调用,它提供下列映射的标准例程:
�主机名字到网络地址
�网络地址到网络号
�协议名字到协议号
�服务名字到端口号及服务器使用的适当协议


============
1.映射主机名字
例程gethostbynamne,gethostbyaddr,gethostent均可完成主机名字与地址映射,它们分别将主机名或节点地址映射成一个hostent结构:
struct hostent{
char * h_name;/* 正式主机名 */
char * * h_aliasea;/* 别名表 */
int h_addrtype;/* 主机的地址类型 */
int h_length;/* 地址长度*/
char * * h_addr_list; /* 地址表 */
#define h_addr h_addr_list[0]
}
2.映射 网络 名字
getnetbyname, getnetbynumber,getnetent是分别用于映射网络名字的例程,使用这些例程,可将网络名映射到网络号,或把网络号映射到网络名,并返回一个netent结构:
struct netent{
char * n_name;/* 正式的网络名 */
char * * n_aliasea;/* 别名表 */
int n_addrtype;/* 网络地址类型 */
unsignedlong n_net;/* 网络号 */
}
3.映射服务名字
通过指定一个服务名和一个可选的合法协议,例程getservbyname,getservbyport,get
servent映射服务名字到一个servent结构:
struct servent{
char * s_name;/* 正式的服务名 */
char * * s_aliasea;/* 别名表 */
int s_port;/* 服务驻留的端口号 */
char * s_proto; /* 所使用的协议 */
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值