Python实现TCP通讯

  • 要实现Python-TCP通讯,你首先得连接到一个网络。

    对于Python来讲,得连接到网络
    对于MicroPython,就是开启一个AP或者以sta模式连接到一个网络

建立一个TCP-server

  • TCP通讯依赖一个叫做socket的对象,实现TCP通讯的服务器有以下几个步骤:
  1. 建立一个TCP-socket对象server_socket = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
  2. 将对象绑定到一个端口上server_socket.bind(('0.0.0.0', 8080))
  3. 等待客户端连接client_socket, addr = server_socket.accept(),这个过程会阻塞直到有连接
  4. 收数据:data = client_socket.recv(1024)
  5. 发数据client_socket.sendall('数据') 或者client_socket.send('数据')【这两个的差别见最后】
  • 完整代码:
import usocket as socket

server_socket = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8080))  # 绑定到本地所有地址的8080端口
server_socket.listen(1)  # 监听客户端连接
while True:
        client_socket, addr = server_socket.accept()  # 接受客户端连接
        print('客户端已连接:', addr)

        # 向客户端发送欢迎消息
        client_socket.sendall(b'欢迎连接到MicroPython服务器!\n')

        # 接收客户端发送的数据并打印
        while True:
            data = client_socket.recv(1024)
            if not data:
                break
            print('接收到客户端消息:', data)
            # 在这里可以添加处理接收到的数据的逻辑

        # 关闭客户端连接
        client_socket.close()

建立一个TCP客户端

  • TCP的客户端(TCP_client)的使用分为如下几步:
  1. 建立客户端socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  2. 连接到服务器:client_socket.connect((server_ip, server_port))
  3. 然后就可以实现收发:
    1. 收: data = client_socket.recv(1024)
    2. 发: client_socket.sendall(数据)

关键知识点

  1. 在服务器端涉及到2个类型的socket,一个是服务器接口的socketserver_socket,这个是总服务器,这个就类似于蚁后,只能下蛋但不能连接客户端。而client_socket就是下出来的蚂蚁,每一个client_socket都可以连接一个客户机。

作者:admin  创建时间:2024-05-09 09:17
最后编辑:admin  更新时间:2024-07-17 11:01