websocket

http協議通訊只能由客戶端發起;python

 

簡述:websocket 基於tcp協議  創建客戶端和服務端的通訊通道web

例子:在python的安裝路徑下,建立一個文件cmd.bat,該文件中寫入cmd.exe,雙擊cmd.bat,打開窗口而後運行python server.py   和 python client.py。服務器

運行效果:實現client和server的實時聊天通訊。websocket

短鏈接——一次通訊socket

【服務器端】tcp

# -*-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()

 長鏈接:ui

【服務端】spa

# -*-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()

【客戶端】code

# -*-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()

 

遇到的問題:

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

相關文章
相關標籤/搜索