linux高性能服务器编程——第五章总结

第五章 Linux网络编程基础API

第五章主要介绍的是Linux网络编程中最常用的API,也就是系统为我们提供的网络编程接口——Socket。

Socket可以看成是一个可读,可写,可控制, 可关闭的文件描述符,同时也是我们控制系统内核的一个接口,它为我们提供了许多功能的函数。书中首先介绍的是Socket的地址API。

Socket地址API的内容:

1.基本知识:主机字节序与网络字节序

主机字节序就是我们常说的小端模式,高字节放高位,低字节放低位;网络字节序就是我们常说的大端模式,与小端模式相反。如上所说,主机端常用小端模式存储数据,所以主机字节序==小端模式;网络字节序常用大端模式存储数据,所以网络字节序==大端模式。

Linux提供许多函数用于两种模式的转换。

2.通用与专用的Socket地址。

(1)Socket通用地址结构体为sockaddr,能够指明Socket的协议族和地址值;当地址值不够用时,还有sockaddr_storage这个新的结构体,功能上一致。

(2)专用的Socket地址是相对于各种协议而言的,比如sockaddr_in,sockaddr_in6就是IPv4于IPv6对应的socket地址结构体。

3.IP地址转换函数

Linux提供的地址转换函数支持点分十进制,点分十六进制和字符串之间的相互转换。

#include<arpa/inet.h>
in_addr_t inet_addr(const char* strptr);
int inet_aton(const char* cp, struct in_addr* inp);
char* inet_ntoa(struct in_addr in);
inti net_pton(int af, const char* src, void* dst);
const char* inet_ntop(int af, const void* src, char* dst, socklen_t cnt);

 

Socket基础API

Socket基础API用于创建对应协议的连接,他有以下常见的函数

#include<sys/types.h>
#include<sys/socket.h>
int socket(int domain, int type, int protocol);
int bind(int sockfd, const struct sockaddr* my_addr, socklen_t addrlen);
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);
int listen(int sockfd, int backlog);
int accept(int sockfd, struct sockaddr* addr, socklen_t *addrlen);
int connect(int sockfd,const struct sockaddr* serv_addr,socklen_t addrlen);
int close(int fd);
int
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值