python socket服务器与设备通信

上面是我创建的群聊,欢迎新朋友的加入。

首先创建两份代码,一份运行于服务器,一份运行于设备端

代码参考:https://blog.csdn.net/weixin_41179606/article/details/81069729

设备端

from socket import *

HOST = '149.28.159.155'              # 指定客户端访问host
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)        # 连接地址

while True:
    # 用户输入数据(str类型)
    data = input('> ')
    if not data:
        break
    # 将数据进行编码,再通过send()方法发送给之前绑定的地址服务器
    tcpCliSock.send(data.encode('utf8'))
    # 接收服务器返回的数据(bytes类型),解码为字符串类型
    data = tcpCliSock.recv(BUFSIZ).decode('utf8')
    if not data:
        break
    # 打印字符串
    print(data)
# 关闭客户端,断开连接
tcpCliSock.close()

服务器端:

from socket import *
from time import ctime

HOST = ''               # 允许任意host接入
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)   # 绑定地址
tcpSerSock.listen(5)    # 最多同时监听数量上限为5

while True:
    print('waiting for connection...')
    # 接受客户端请求之前保持阻塞,连接后获取客户端socket及其地址
    tcpCliSock, addr = tcpSerSock.accept()
    # 打印请求此次服务的客户端的地址 
    print('...connection from: {}'.format(addr))
    while True:
        # 通过客户socket获取客户端信息(bytes类型),并解码为字符串类型
        data = tcpCliSock.recv(BUFSIZ).decode('utf8')
        if not data:
            break
        print(data)
        # 处理字符串并重新编码为bytes类型,调用send()方法发送回客户端
        tcpCliSock.send('[{}] {}'.format(ctime(), data).encode('utf8'))
        send = 'jun test'
        tcpCliSock.send(send.encode('utf8'))
    # 关闭客户端
    tcpCliSock.close()
# 关闭服务器
tcpCliSock.close()

运行,有先后顺序,先运行服务器,再运行设备端

python socket服务器与设备通信_第1张图片

设备已连接

python socket服务器与设备通信_第2张图片

设备发数据给服务器,服务器再返回给设备

 

你可能感兴趣的:(python socket服务器与设备通信)