服务器端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();
posted @ 2023-04-18 22:16  Logic_Han  阅读(156)  评论(0编辑  收藏  举报