第二部分
网络编程之 osi七层模型和三次握手四次挥手 socket
# by luffycity.com
# 概念
# 应用层 http https ssl smtp ftp
# 传输层 tcp udp 端口信息 四层路由器 四层交换机
# tcp
# 可靠的 面向连接的 全双工的 流式传输 效率低
# 三次握手和四次挥手
# 三次握手
# 把图背下来 syn ack
# 四次挥手
# 把图背下来 fin ack
# 黏包 : (自定义协议)先发送数据的长度,再发送数据
# udp 效率高 不可靠 无连接 基于数据包的传输 能够传输的数据的长度有限
# 网络层 ipv4协议192.168.0.1 ipv6协议 ff2312:f5242:12:1:1:1 网关地址 子网掩码 路由器 三层交换机
# 数据链路层 mac地址 arp(通过ip地址找mac地址),rarp(通过mac地址找ip地址) 网卡 交换机
# 物理层
# 1.评论 限制长度 数据库的carchar(255)
# 2.即时聊天的工具 udp
# socket
# socketserver
# 手写socket
# server - tcp
import socket
# sk = socket.socket()
# sk.bind(('127.0.0.1',9000))
# sk.listen()
#
# # while True表示能够和多个client通信
# conn,addr = sk.accept() # 建立三次握手的过程
# # while True表示能够和一个client说多句话
# conn.recv(1024)
# conn.send(b'xxx')
# conn.close()
# sk.close() # 四次挥手中的两手
# client -tcp
# import socket
# sk = socket.socket()
# sk.connect(('127.0.0.1',9000))
#
# sk.send(b'hello')
# sk.recv(1024)
# sk.close() # 四次挥手中的两手
# server -udp
# import socket
# sk = socket.socket(type=socket.SOCK_DGRAM)
# sk.bind(('127.0.0.1',9000))
# while True:
# msg,cli_addr = sk.recvfrom(1024)
# sk.sendto(msg,cli_addr)
# sk.close()
# clients -udp
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto(b'msg',('127.0.0.1',9000))
msg,_ = sk.recvfrom(1024)
print(msg)
sk.close()
# by luf