python网络编程(一):socket基本, socketserver

'''
网络编程:
1. 网络分层
2. C/SB/S架构
3. Socket + TCP/UDP
4. TCP粘包
5. 基于TCP实现验证
6. 多线程Socket
''' # 综述

'''
1. 网络结构:
/*OSI七层*/ /*TCP/IP五层*/ /*TCP/IP四层*/ 协议
应用层
表示层 ------ 应用层 ---- 应用层 HTTP, FTP, DNS
会话层

/*************** Socket **********************/

传输层 ------ 传输层 ---- 传输层 TCP/UDP
网络层 ------ 网路层 ---- 网路层 IP

数据链路层 ---- 数据链路层 ---- 网络接口层 ARP
物理层 ------ 物理层

2. Socket分类:
AF_UNIX # 文件socket
AF_INET # 网络socket

3. 程序的唯一标识: IP_PORT = ('ip_port',port)
''' # 网络分层, socket分类, 程序的唯一标识

'''
C/SB/S架构:
1. C/S: Client and Server
#1. 两层架构
#2. 客户端需要实现绝大多少的业务逻辑和界面展示
#3. 服务器端实现与数据库交互

优点:
#1. 交互只有一层, 响应速度快
#2. 客户端操作丰富
#3. 安全性好
缺点:
#1. 用户群窄, 需要安装客户端
#2. 维护成本高, 发生一次升级, 所有客户端要更新

2. B/S: Browser and Server
#1. Browser, ServerDataBase构成三层架构
#2. 事务主要在后端处理, 前端负责呈现

优点:
#1. 客户端无需安装, 浏览器就行了
#2. 用户群广
#3. 升级服务器就行了
缺点:
#1. 跨浏览器的兼容问题
#2. 响应速度和安全问题
''' # C/SB/S架构

'''
TCP/IP: 面向连接
1. 流程
/*Server*/ /*Client*/
tcp_server = socket(AF_INET,STREAM) tcp_client = socket(AF_INET,STREAM)
tcp_server.bind(IP_PORT) tcp_client.connect_ex(IP_PORT)
tcp_server.listen(num)
---- 准备 --------------

conn, addr = tcp_server.accept()
---- 监听, 有用户接入则建立连接----- ------- 客服端接入 ---------------

conn.recv(BUFSIZE) tcp_client.send(b'msg')
conn.send(b'msg') tcp_client.recv(BUFSIZE)
---- 读取或者发送消息 ------------ -------- 发送或读取消息 -----------

conn.close() tcp_client.close()
---- 服务器断开连接 ----------- ------ 客户端断开连接 -------------

tcp.server.close()
---- 服务器关闭 --------------

2. 注意:
1>服务器端有两次阻塞:
1) tcp_server.accept() # 等待客户端接入, 没有则程序卡住;
# 有多个连接接入时, 则将其余存入缓存区, 等当前连接处理完断开后, 再处理下一个连接

转载于:https://www.cnblogs.com/lancelotxly/p/10837803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值