python udp广播_Python UDP应用之广播接收和发送,设置套接字可以发送接收广播,广播风暴【源码】...

UDP应用之广播

广播:一点发送,多点接收

广播地址:一个网段内有一个指定的广播地址,是该网段的最大地址。192.168.207.255

接收广播:

from socket import *

1.创建套接字

s = socket(AF_INET,SOCK_DGRAM)

2.设置套接字可以发送接收广播

s.setsockopt(SOL_SOCKET,SO_BROADCAST,1)

3.固定接收端口

s.bind(('0.0.0.0',9999))

4.接收广播

while True:

try:

msg,addr = s.recvfrom(1024)

print('从{}获取信息:{}'.format(addr,msg.decode()))

except (KeyboardInterrupt,SyntaxError):

raise

except Exception as e:

print(e)

源码:

from socket import *

import sys

HOST = sys.argv[1]

PORT = int(sys.argv[2])

ADDR = (HOST,PORT)

#创建套接字

sockfd = socket(AF_INET,SOCK_DGRAM)

#消息收发

while True:

data = input('消息:')

sockfd.sendto(data.encode(),ADDR)

data,addr = sockfd.recvfrom(1024)

print('接收到:',data.decode())

sockfd.close()

发送广播:

from socket import *

1.设置目标地址

dest = ('192.168.207.255',9999)

s = socket(AF_INET,SOCK_DGRAM)

2.设置能够发送广播

s.setsockopt(SOL_SOCKET,SO_BROADCAST,1)

3.发送广播

while True:

sleep(2)

s.sendto('广播内容'.encode(),dest)

s.close()

源码:

from socket import *

#创建数据报套接字

sockfd = socket(AF_INET,SOCK_DGRAM)

#绑定服务端地址

server_addr = ('0.0.0.0',8888)

sockfd.bind(server_addr)

#消息收发

while True:

data,addr = sockfd.recvfrom(1024)

print('从%s收到%s'%addr,data.decode())

sockfd.sendto('收到你的消息'.encode(),addr)

sockfd.close()

广播风暴:一个网络中有大量的广播就会产生风暴占用大量带宽,影响正常的访问速度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值