python-网络编程
Posted 水晶冰洛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-网络编程相关的知识,希望对你有一定的参考价值。
1.osi五层协议
# 应用层 # 传输层 # tcp协议 : 效率低 面向连接可靠全双工的通信 # 三次握手 # 客户端向服务器端发送syn请求, # 服务端向客户端回复ack并发送syn请求, # 客户端接收到请求之后再回复ack表示建立连接 # 由客户端的connect + 服务端的accept # 四次挥手 # 客户端向服务端发送fin请求, # 服务端回复ack确认 # 服务端向客户端发送fin请求, # 客户端回复ack确认 # 有客户端的close和服务端的close # udp协议 : 效率高 无连接的不可靠 # 四层交换机 四层路由器 # 网络层 # ip协议(ipv4 ipv6) # 路由器三层交换机 # 数据链路层 # arp协议 地址解析协议 通过ip找到mac地址 # 交换机网卡 : 单播 广播 组播 # 物理层
2 b/s c/s架构
C/S client server
B/S browser server
3.简单的网络通信
#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()
以上是关于python-网络编程的主要内容,如果未能解决你的问题,请参考以下文章