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

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值