关于websocket那些事

讲一期websocket 也算是给自己做个笔记吧!

简单讲一下这玩意是啥:
官方的回答自行搜索。
通俗讲就是:是H5出的协议,双向平等对话(服务器到客户端,客户端也可到服务器),属于服务器推送技术的一种。
说一下强大之处:

  1. 数据格式轻量,通讯高效
  2. 发送数据可以是二进制也可以是文本
  3. 可以与任意服务器进行通信,因为通信阶段使用的是Http协议,不容易被屏蔽
  4. 注意:协议标识符是ws,加密的话是wss(例如:http ,和https)。

常用属性:

  1. onopen:连接成功后的回调
  2. onclose:指定连接关闭后的回调
  3. onmessage:接收服务器数据的函数
  4. send:客户端向服务器发送数据
  5. onerror:报错时指定的报错的回调

Python示例代码:

import socket
 
#AF_INET:服务器之间网络通讯。SOCK_STREAM:流式socket,for Tcp
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('127.0.0.1', 8002))
sock.listen(5)
#获取客户端socket对象
conn, address = sock.accept()
#获取客户端的【握手】信息
data = conn.recv()
conn.send('发送消息')

流程图(网图):在这里插入图片描述

代码解读:
TCP服务端:
1 创建套接字,绑定套接字到本地IP与端口

socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.bind()

2 开始监听连接

s.listen()

3 进入循环,不断接受客户端的连接请求

s.accept()

4 然后接收传来的数据,并发送给对方数据

s.recv() , s.sendall()

5 传输完毕后,关闭套接字

s.close()

TCP客户端:
1 创建套接字,连接远端地址

socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.connect()

2 连接后发送数据和接收数据

s.sendall(), s.recv()

3 传输完毕后,关闭套接字

s.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值