python搭建udp服务端

工作上需要采集传感器数据,大数据量一般采用udp传输,故此做个记录。

服务端

# 先下载所需模块 socket
pip install -i https://pypi.doubanio.com/simple socket

创建套接字,绑定套接字到本地IP与端口;SOCK_STREAM是基于TCP的,数据传输比较有保障。SOCK_DGRAM是基于UDP的,专门用于局域网。

import socket

# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定ip和端口
server_socket.bind(("127.0.0.1", 5010))

# 等待数据接收,设置接受内容的大小(recvfrom为阻塞式 会一直阻塞到接收缓冲区里有一个字节或一个完整的UDP数据报为止,然后再返回
receive_data, addr = server_socket.recvfrom(1028)

# 打印数据内容,客户端地址
print(receive_data, addr)

基于类函数创建TCP服务端并且持续监听数据

import socket

class DataCollect():

    def __init__(self):
        try:
            self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            self.server_socket.setsockopt(socket.IPPROTO_IP, 1, 1)
            self.server_socket.bind(("127.0.0.1", 5010))
            self.run()
        except Exception as e:
            print("error: ", e)

    def run(self):

        while True:
            try:
                receive_data, addr = self.server_socket.recvfrom(1028)
                print(f"接收到的数据:{receive_data} 地址:{addr}")
            except Exception as e:
                print("error: ", e)


if __name__ == "__main__":
    DataCollect()
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容