博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于websocket那些事
阅读量:3939 次
发布时间:2019-05-23

本文共 1009 字,大约阅读时间需要 3 分钟。

讲一期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 Tcpsock = 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()

转载地址:http://gxywi.baihongyu.com/

你可能感兴趣的文章
c# 用委託 + 策略 解決 switch case 過多的問題
查看>>
BinaryFormatter 類別
查看>>
构造函数
查看>>
SQL Server 使用 FileStream存储图片文件等BLOB资料
查看>>
vs中 WebAPI 以Console application和WinForm作为宿主的部署
查看>>
Javascript常用日期获取方法
查看>>
SQL Server 将字符串按指定字符分隔后存储到table
查看>>
SQL Server的數據類型
查看>>
允許文本框輸入數字,退格鍵,小數點,負號
查看>>
利用线程解决页面打开加载数据延迟的问题
查看>>
c# 读写excel文件
查看>>
c#利用反射按名稱找到類的方法并執行
查看>>
EF添加DataModel時在config中隱藏connectiongstring敏感字符的方法
查看>>
在web page中按enter鍵焦點轉到下一個tabindex的控件
查看>>
EF 對于多條件的查詢
查看>>
VS.NET MVC(一)
查看>>
c# DataGridView datasource綁定datatable 與dataview的區別
查看>>
jQuery 教程
查看>>
.Net ExpandoObjecct類
查看>>
VS MVC设置起始页
查看>>