标签:一个 == 递归 协议 eve 粘包 数据报 hid client
复习
上节课复习: 1、C/S B/S client----- server browser-----server 其中服务端必须具备: 1、稳定运行,对外一直提供服务 2、绑定一个固定的ip+port 2、互联网: 2.1 物理连接介质 2.2 互联网协议(互联网协议即计算机界的英语) 3、tcp 三次握手 半连接池backlog=5 限制的同一时刻的请求数而非连接数 四次挥手断开连接 今日内容: 1、基于socket编写C/S架构的软件 基于tcp协议 2、tcp协议的粘包问题
基于tcp协议的套接字通信
import socket #1、买手机 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #tcp称为流式协议,udp称为数据报协议SOCK_DGRAM # print(phone) #2、插入/绑定手机卡 # phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) phone.bind((‘127.0.0.1‘,8080)) #3、开机 phone.listen(5) # 半连接池,限制的是请求数 #4、等待电话连接 print(‘start....‘) while True: # 连接循环 conn,client_addr=phone.accept() #(三次握手建立的双向连接,(客户端的ip,端口)) # print(conn) print(‘已经有一个连接建立成功‘,client_addr) #5、通信:收\发消息 while True: # 通信循环 try: print(‘服务端正在收数据...‘) data=conn.recv(1024) #最大接收的字节数,没有数据会在原地一直等待收,即发送者发送的数据量必须>0bytes # print(‘===>‘) if len(data) == 0:break #在客户端单方面断开连接,服务端才会出现收空数据的情况 print(‘来自客户端的数据‘,data) conn.send(data.upper()) except ConnectionResetError: break #6、挂掉电话连接 conn.close() #7、关机 phone.close()
import socket #1、买手机 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # print(phone) #2、拨电话 phone.connect((‘127.0.0.1‘,8080)) # 指定服务端ip和端口 #3、通信:发\收消息 while True: # 通信循环 msg=input(‘>>: ‘).strip() #msg=‘‘ if len(msg) == 0:continue phone.send(msg.encode(‘utf-8‘)) # print(‘has send----->‘) data=phone.recv(1024) # print(‘has recv----->‘) print(data) #4、关闭 phone.close()
访问过程 应用层数据--os(协议层:端口,加tcp头,加ip头,找网关mac,二进制数----网络传输----物理层,数据层,网络层,传输层,应用层)
dns:横向递归查询 纵向迭代查询
标签:一个 == 递归 协议 eve 粘包 数据报 hid client
原文地址:https://www.cnblogs.com/xujinjin18/p/9275918.html