mySc day10
来源:互联网 发布:厚黑学讲解 知乎 编辑:程序博客网 时间:2024/06/10 15:23
Socket网络编程
Socket:套接字,即一个编程接口,是一种特殊的文件描述符(everything in UNix is a file)
五要素
协议、本地地址、本地端口、远程地址、远程端口
协议域domain
AF_INET IPv4(主要)
AF_INET6 IPv6
AF_LOCAL Unix域
类型type
流式套接字
SOCK_STREAM
提供面向链接、可靠的数据传输服务,数据按字节流、按顺序收发,保证在传输过程中无丢失、无冗余。
TCP协议支持该套接字。
数据报套接字
SOCK_DGRAM
提供面向无链接的服务,数据收发无序,不能保证数据的准确到达。
UDP协议支持该套接字。
原始套接字
SOCK_RAW
允许对低于传输层的
协议
概念:接头暗号
分类
TCP(Transmission Control Protocol)[面向连接]
数据流
三次握手/四次握手
类比
应用
UDP(User Datagram Peotocol)[无连接]
数据报
类比
分类
单播(unicast)
广播(broadcast)
多播/组播(multicast)
应用
网络聊天
视频会议
桌面共享
路径
IP:Internet中主机的标识
分类
32位(IPV4)
128位(IPV6)
表示形式
常用点分形式
IPv4
IPv6
特例
通配地址:主机上所有IP,多网卡共用【0.0.0.0】
回环地址:本地虚拟接口,无网卡可用,用来检查本地网络协议【127.0.0.1】
广播地址
受限广播地址【xxx.xxx.xxx.255】
子网广播地址【xxx.xxx.255.255】
全子网广播【xxx.255.255.255】
域名
DNS:ip与域名【电话号码与人名】
端口:区分一台主机接收到的数据包应该转交给哪个进程来进行处理
查看端口 netstat -apn
类比
火车站与站台
飞机场与登机口
公司与办公室
银行与窗口柜台
IP与端口
字节库
大端BE(big endian):将高序字节存储在起始地址
IBM、服务器
小端LE(litter endian):将低序字节存储在起始地址
Intel
字节序转换操作
网络转主机序
ntohs()
network to host short【端口】
把unsigned short类型从网络序转换到主机序
ntohl()
network to host long【IP地址】
把unsigned long类型从网络序转换到主机序
主机转网络序
htons()
host to network short
把unsigned short类型从主机序转换到网络序
htonl()
host to network long
把unsigned long类型从主机序转换到网络序
IP地址转换操作
IPv4专用
点分十进制数串转网络字节序长整型
int inet_aton(const char* string,struct in_addr*addr)
in_addr_t inet_addr(const char* strin)【不推荐使用】
网络字节序长整型转点分十进制数串
char* inet_ntoa(struct in_addr addr)
IPv4/IPv6通用(推荐)
点分十进制数串转网络字节序长整型
int inet_pton(int af,const char* src,void *dst)
网络字节序长整型转点分十进制数串
const char *inet_ntop(int af,const void* src,char* dst,socklen_t cnt)
Socket:套接字,即一个编程接口,是一种特殊的文件描述符(everything in UNix is a file)
五要素
协议、本地地址、本地端口、远程地址、远程端口
协议域domain
AF_INET IPv4(主要)
AF_INET6 IPv6
AF_LOCAL Unix域
类型type
流式套接字
SOCK_STREAM
提供面向链接、可靠的数据传输服务,数据按字节流、按顺序收发,保证在传输过程中无丢失、无冗余。
TCP协议支持该套接字。
数据报套接字
SOCK_DGRAM
提供面向无链接的服务,数据收发无序,不能保证数据的准确到达。
UDP协议支持该套接字。
原始套接字
SOCK_RAW
允许对低于传输层的
协议
概念:接头暗号
分类
TCP(Transmission Control Protocol)[面向连接]
数据流
三次握手/四次握手
类比
应用
UDP(User Datagram Peotocol)[无连接]
数据报
类比
分类
单播(unicast)
广播(broadcast)
多播/组播(multicast)
应用
网络聊天
视频会议
桌面共享
路径
IP:Internet中主机的标识
分类
32位(IPV4)
128位(IPV6)
表示形式
常用点分形式
IPv4
IPv6
特例
通配地址:主机上所有IP,多网卡共用【0.0.0.0】
回环地址:本地虚拟接口,无网卡可用,用来检查本地网络协议【127.0.0.1】
广播地址
受限广播地址【xxx.xxx.xxx.255】
子网广播地址【xxx.xxx.255.255】
全子网广播【xxx.255.255.255】
域名
DNS:ip与域名【电话号码与人名】
端口:区分一台主机接收到的数据包应该转交给哪个进程来进行处理
查看端口 netstat -apn
类比
火车站与站台
飞机场与登机口
公司与办公室
银行与窗口柜台
IP与端口
字节库
大端BE(big endian):将高序字节存储在起始地址
IBM、服务器
小端LE(litter endian):将低序字节存储在起始地址
Intel
字节序转换操作
网络转主机序
ntohs()
network to host short【端口】
把unsigned short类型从网络序转换到主机序
ntohl()
network to host long【IP地址】
把unsigned long类型从网络序转换到主机序
主机转网络序
htons()
host to network short
把unsigned short类型从主机序转换到网络序
htonl()
host to network long
把unsigned long类型从主机序转换到网络序
IP地址转换操作
IPv4专用
点分十进制数串转网络字节序长整型
int inet_aton(const char* string,struct in_addr*addr)
in_addr_t inet_addr(const char* strin)【不推荐使用】
网络字节序长整型转点分十进制数串
char* inet_ntoa(struct in_addr addr)
IPv4/IPv6通用(推荐)
点分十进制数串转网络字节序长整型
int inet_pton(int af,const char* src,void *dst)
网络字节序长整型转点分十进制数串
const char *inet_ntop(int af,const void* src,char* dst,socklen_t cnt)
阅读全文
0 0
- mySc day10
- mySc day8
- mySc day7
- day10
- day10
- day10
- day10
- day10
- day10
- DAY10
- day10
- day10
- day10
- Day10
- day10
- Day10
- day10
- day10
- 简单的算法问题4——移除数组中重复的元素
- 记一次惊险的文件恢复经历Eclipse saved my day
- 输入框input值变化
- 【13.2】c++ primer plus 课后编程答案
- Codeforces
- mySc day10
- FastDFS分布式文件系统在Linux上的部署和安装
- 微信小程序例子——调节手机屏幕亮度
- CvConvexityDefect的特征量的定义
- poj1741 Tree点分治
- 页面优化【笔记】
- 滚动条属性
- Anaconda的学习笔记
- jsonArray转换list集合失败 前台页面获取不到字段 字段丢失