自学内容网 自学内容网

python:socket基础操作(3)-《udp接收消息》

收跟发基本核心思想差不多,只不过收信息需要去绑定一下端口,如果我们发信息没有绑定端口,那系统会随机分配一个,如果是收信息,那我们必须要求自己绑定端口才行


基础的接收数据

import socket

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# socket 套接字的类型             IPV4            udp协议

local = ('',8888)
# 写入ip内容的变量

ipaddr = udp_socket.bind(local)
# 绑定ip地址和端口

recv = udp_socket.recvfrom(1024)
# 获取发过来的信息

print(recv)
# 输出

udp_socket.close()

意思是绑定我们自己的端口8888进行监听,我把这段代码放到了ubuntu上进行收,win10用来发送数据测试

当发送来了信息,可以看到内容为 hello   来自192.168.6.254 的52460端口


处理接收的数据

当我们接收到了信息发现是这样一段,这是收到了一个元组,我们可以自己去处理一下

import socket
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

localhost=('',8888)

bind=udp_socket.bind(localhost)

recv = udp_socket.recvfrom(1024)

test = recv[0]
ipadd = recv[1]

print(ipadd[0],test.decode("utf-8"))

udp_socket.close()

再接收过来的信息,我们想让他咋输出他就咋输出


循环接收信息

很简单直接加个while循环就行了

import socket
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

local = ('',8888)
bind = udp_socket.bind(local)

while True :

    recv = udp_socket.recvfrom(1024)

    test = recv[0]
    ipaddr = recv[1]
    print("消息来源: %s 内容为: %s" %(ipaddr[0],test.decode('utf-8')))

udp_socket.close()


原文地址:https://blog.csdn.net/w14768855/article/details/135856166

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!