• websocket


    http协议通信只能由客户端发起;

    简述:websocket 基于tcp协议  建立客户端和服务端的通信通道

    例子:在python的安装路径下,创建一个文件cmd.bat,该文件中写入cmd.exe,双击cmd.bat,打开窗口然后运行python server.py   和 python client.py。

    运行效果:实现client和server的实时聊天通信。

    短连接——一次通信

    【服务器端】

    # -*-coding:utf-8 -*-
    import socket
    
    
    host='127.0.0.1'
    port=8001
    
    # 创建socket对象,family表示地址家族,type代表协议类型
    s=socket.socket()    # 创建套接字
    s.bind((host,port))  # 接收的参数是元组
    
    
    s.listen(5) # 队列满了之后允许客户端连接到服务器个数
    
    # clnt 新的套接字对象,addr 地址
    clnt,addr = s.accept()
    # send——resave
    # 接收的最大数据为1024字节
    data = clnt.recv(1024)
    print(data)
    clnt.sendall()
    s.close()

    【客户端】

    # -*-coding:utf-8 -*-
    import socket
    
    
    # 创建socket对象,family表示地址家族,type代表协议类型
    # 创建套接字
    s=socket.socket()        
    
    # 连接服务器的地址
    s.connect(('127.0.0.1',8002))
    
    cmd = input('please input:')
    cmd
    =cmd.encode() s.sendall(cmd) data=s.recv(1024) print(data) s.close()

     长连接:

    【服务端】

    # -*-coding:utf-8 -*-
    import socket
    
    
    host='127.0.0.1'
    port=8002
    
    # 创建socket对象,family表示地址家族,type代表协议类型
    s=socket.socket()    # 创建套接字
    s.bind((host,port))  # 接收的参数是元组
    
    
    s.listen(5) # 队列满了之后允许客户端连接到服务器个数
    
    # clnt 新的套接字对象,addr 地址
    clnt,addr = s.accept()
    print ('cline address:',addr)
    while True:
        # send——resave
        # 接收的最大数据为1024字节
        data = clnt.recv(1024)
        print(data)
        clnt.sendall(data)
    
    s.close()

    【客户端】

    # -*-coding:utf-8 -*-
    import socket
    
    
    # 创建socket对象,family表示地址家族,type代表协议类型
    # 创建套接字
    s=socket.socket()        
    
    # 连接服务器的地址
    s.connect(('127.0.0.1',8002))
    
    while True:
    
        cmd = input('please input:')
        if cmd == 'quit':break
    
        cmd=cmd.encode()
        s.sendall(cmd)
    
        data=s.recv(1024)
        print(data)
    
    s.close()

    遇到的问题:

    1、WebSocket connection to 'wss://localhost:8080/' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR

  • 相关阅读:
    固态硬盘 每秒1.5G
    editPlus
    juqery 插入一行
    BufferedReader读取UTF8文件中文乱码
    jquery table 操作
    noSql
    javascript 开发规范
    同一服务器上安装多个tomcat
    100 个搜索引擎
    firefox 开发sdk
  • 原文地址:https://www.cnblogs.com/hd-test/p/11819326.html
Copyright © 2020-2023  润新知