python-网络编程
2021-01-25 07:14
标签:ip协议 end 网络通 地址解析 路由 accept tcp close 通信 1.osi五层协议 2 b/s c/s架构 3.简单的网络通信 python-网络编程 标签:ip协议 end 网络通 地址解析 路由 accept tcp close 通信 原文地址:https://www.cnblogs.com/zengluo/p/12862153.html# 应用层
# 传输层
# tcp协议 : 效率低 面向连接\可靠\全双工的通信
# 三次握手
# 客户端向服务器端发送syn请求,
# 服务端向客户端回复ack并发送syn请求,
# 客户端接收到请求之后再回复ack表示建立连接
# 由客户端的connect + 服务端的accept
# 四次挥手
# 客户端向服务端发送fin请求,
# 服务端回复ack确认
# 服务端向客户端发送fin请求,
# 客户端回复ack确认
# 有客户端的close和服务端的close
# udp协议 : 效率高 无连接的\不可靠
# 四层交换机 四层路由器
# 网络层
# ip协议(ipv4 ipv6)
# 路由器\三层交换机
# 数据链路层
# arp协议 地址解析协议 通过ip找到mac地址
# 交换机\网卡 : 单播 广播 组播
# 物理层
C/S client server
B/S browser server
#server服务端
import socket #炒茄子
sk = socket.socket() # 创建一个server端的对象
sk.bind((‘127.0.0.1‘,9001)) # 给server端绑定一个地址 ,可以写自己的IP地址
sk.listen() # 开始监听(可以接收)客户端给我的连接了
conn,addr = sk.accept() # 建立连接 conn是连接,ADDR是地址,也可以不写这个变量
conn.send(b‘hello‘) #联上后,进行通信
msg = conn.recv(1024) #1024 表示最多接收1024个字
print(msg)
conn.close() # 关闭连接
sk.close() #关掉服务
client客户端
import socket
sk = socket.socket() #实例化对象
sk.connect((‘127.0.0.1‘,9001)) #联接server端
msg = sk.recv(1024) #1024 表示最多接收1024个字
print(msg)
sk.send(b‘byebye‘)
sk.close()