Python发送UDP数据包

#导入 socket
import socket
#导入 random
import random
#输入‘server’为服务端,输入‘client’为客户端
a=input('server/client :')
#定义服务端
def server():
#   初始化
    sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    sock.bind(('127.0.0.1',9595))
    print('Listening at',sock.getsockname())
    while True:
#      接收数据包大小
        data,address=sock.recvfrom(65535)
        if random.random() < 0.5:
            print("Pretening to drop packet from {}".format(address))
            continue
        text=data.decode('ascii')
        print('The client at {} says {!r}'.format(address,text))
        message='Your data was {} bytes long'.format(len(data))
        sock.sendto(message.encode('ascii'),address)
#定义客户端
def client():
    while True:
#       初始化
        sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        sock.connect(('127.0.0.1',9595))
        print('Client socket name is {}'.format(sock.getsockname()))
        delay=0.1
        # text='This is another message'
#       text是输入要发送的内容
        text=input('@:')
        data = text.encode('ascii')
        while True:
            sock.send(data)
            print('Waiting up to {} seconds for a reply'.format(delay))
            sock.settimeout(delay)
            try:
                data=sock.recv(65535)
            except sock.timeout:
                delay*=1.0
                continue
                if delay > 2.0:
                    raise  RuntimeError('I think the server is down')
                continue
            else:
                continue
        print('The server says {!r}'.format(data.decode('ascii')))

if a == 'server':
    server()
else:
    client()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值