服务器端lfd cfd笔记
WebConnect
stream socket base on tcp
datagram socket base on udp
ip/port
windows:ipconfig
linux:ifconfig
防火墙与不同主机通信
OSI(open system interconnect)
app->transport->ip->datalink
socket-字节序
net:big endian
host:little endian
soctkt-big endian-little endian
unit16_t htons(unit16_t hostshort)
unit32_t htonl(unit32_t hostlong)
unit32_t ntohl(unit32_t netlong)
IP地址转换
int inet_pton(int af,const char* src,void* dst)
参数:
af: 地址族 (IP 地址的家族包括 ipv4 和 ipv6) 协议
AF_INET: ipv4 格式的 ip 地址
AF_INET6: ipv6 格式的 ip 地址
src: 传入参数,对应要转换的点分十进制的 ip 地址: 192.168.1.100
dst: 传出参数,函数调用完成,转换得到的大端整形 IP 被写入到这块内存中
返回值:成功返回 1,失败返回 0 或者 - 1
#include <arpa/inet.h>
// 将大端的整形数, 转换为小端的点分十进制的IP地址
const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
服务器端通信
三次握手/四次挥手<==>结婚/离婚
//
int lfd=socket();
//磁盘IO是操作磁盘,网络IO操作的是内存
bind();
listen();
int cfd=accept();
read();
write();
close();
客户端通信
int cfd=socket();
connect();
read();
write();
close();