UDP语法

1 创建一个socket的UDP对象

import socket

#创建对象  socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM)
print (sk)

执行

[root@node10 tcp]# python3 server.py
<socket.socket fd=3,
family=AddressFamily.AF_INET,
type=SocketKind.SOCK_DGRAM,
proto=0,
laddr=('0.0.0.0', 0)>

2 创建UAP连接

服务端

import socket

#创建对象  socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM) #在网络中注册该主机
sk.bind ( ("127.0.0.1",9000) ) #udp服务器,第一次启动时,一定是先接收数据,在发送数据
msg,cli_addr = sk.recvfrom(1024)
print (msg.decode("utf-8")) #关闭udp连接
sk.close()

客户端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM) #sendto (要发送的消息,(IP地址,端口号))
sendto ("Nice to meet you!".encode("utf-8"),("127.0.0.1",9000) )
#关闭连接
sk.close()

先执行服务端

[root@node10 tcp]# python3 server.py

被阻塞,查看端口信息

再执行客户端

服务端收到消息

[root@node10 tcp]# python3 server.py
Nice to meet you!

3 循环发消息

服务端

#服务端
import socket #创建对象 socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM) #在网络中注册该主机
sk.bind ( ("127.0.0.1",9000) ) #udp服务器,第一次启动时,一定是先接收数据,在发送数据
while True:
msg,cli_addr = sk.recvfrom(1024)
print (msg.decode("utf-8"))
print (cli_addr) #关闭udp连接
sk.close()

客户端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM) #sendto (要发送的消息,(IP地址,端口号))
while True:
message = input("Please input the value:")
sk.sendto (message.encode("utf-8"),("127.0.0.1",9000) )
#关闭连接
sk.close()

执行

[root@node10 tcp]# python3 server.py
Hello #服务端接收的消息
('127.0.0.1', 34236) #打印出客户端的地址端口
Nice to meet you!
('127.0.0.1', 34236)
[root@node10 tcp]# python3 client.py #客户端发送消息
Please input the value:Hello
Please input the value:Nice to meet you!

4 服务端同时发送消息给客户端

服务端

#服务端
import socket #创建对象 socket.SOCK_DGRAM 代表UDP协议
sk = socket.socket(type=socket.SOCK_DGRAM) #在网络中注册该主机
sk.bind ( ("127.0.0.1",9000) ) #udp服务器,第一次启动时,一定是先接收数据,在发送数据
while True:
msg,cli_addr = sk.recvfrom(1024)
print (msg.decode("utf-8"))
print (cli_addr)
#发送消息
message = input("Please input your vaule>>>:")
sk.sendto(message.encode("utf-8"),cli_addr)
#关闭udp连接
sk.close()

客户端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM) #sendto (要发送的消息,(IP地址,端口号))
while True:
message = input("Please input the value:")
sk.sendto (message.encode("utf-8"),("127.0.0.1",9000) )
#接收数据
msg,ser_addr = sk.recvfrom(1024)
print (msg.decode("utf-8"))
#关闭连接
sk.close()

执行

[root@node10 tcp]# python3 server.py
Hi #服务端接收数据
('127.0.0.1', 41800)
Please input your vaule>>>:Hi #服务端发送的数据
Nice to meet you!
('127.0.0.1', 41800)
Please input your vaule>>>:Nice to meet you too!
[root@node10 tcp]# python3 client.py
Please input the value:Hi #客户端发送数据
Hi #客户端接收到的数据
Please input the value:Nice to meet you!
Nice to meet you too!
Please input the value:

037.Python的UDP语法的更多相关文章

  1. python yield from 语法

    python yield from 语法 yield语法比较简单, 教程也很多 , yield from的中文讲解很少 , python官网是这样解释的 PEP 380 adds the yield ...

  2. Python基础:语法基础(3)

    本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...

  3. Python的基础语法(二)

    0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...

  4. 六. Python基础(6)--语法

    六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...

  5. 五. Python基础(5)--语法

    五. Python基础(5)--语法 1 ● break结束的是它所在的循环体, continue是让它所在的循环体继续循环 # 打印: 1 10 2 10 3 10 4 10 5 10 6 10 7 ...

  6. 四. Python基础(4)--语法

    四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次     sum += i     i ...

  7. 三. Python基础(3)--语法

    三. Python基础(3)--语法 1. 字符串格式化的知识补充 tpl = "我是%s,年龄%d,学习进度100%" %('Arroz',18) print(tpl) # 会提 ...

  8. 二. Python基础(2)--语法

    二. Python基础(2)--语法 1.实现一个简单的登录系统 '''# 形式1 n = 1 while n < 4:     name = input("请输入姓名\n" ...

  9. 一. Python基础(1)--语法

    一. Python基础(1)--语法 1. 应用程序 1.1 什么是计算机(Computer)? 组成 ①运算器 arithmetic unit; ※ Arithmetic unit and cont ...

随机推荐

  1. 使用python制作大数据词云

    1 from wordcloud import WordCloud 2 import PIL.Image as image 3 import numpy as np 4 import jieba 5 ...

  2. 2021年春软件工程"助教团队"成员介绍

    2021年春软件工程 助教团队 成员介绍 项目 内容 这个作业属于那个课程 2021春季学期软件工程(罗杰.任健) 这个作业的要求在哪里 团队介绍 姓名 照片 个人介绍 分工 刘Q 本团队的PM,和助 ...

  3. 华为联运游戏或应用审核驳回:HMS Core升级提示语言类型错误

    问题描述 最近项目组应用集成华为的HMS Core SDK相关能力后,发布地区选择中国大陆,提交审核,华为审核驳回:在低于2.5.3版本的华为移动服务手机上启动时或调出支付时拉起升级提示为英文,正确的 ...

  4. 下拉框动态显示options遇到的问题

    百度后发现,目前资源比较多的就是layui和bootstrap这两种框架了,我是用的bootstrap-select,不知道为啥使用layui的formselect,引入css和js文件后,在sele ...

  5. create-react-app 核心思路分析

    原文链接:http://axuebin.com/articles/fe-solution/cli/cra.html,转载请联系 Create React App is an officially su ...

  6. 测开新手:从0到1,自动化测试接入Jenkins学习

    大家好,我叫董鑫,一个在测试开发道路上的新手,之前一直从事手工功能测试,前段时间抽空又温习了一遍老师全栈测开训练营中自动化测试.CICD的知识,最近公司正好有一个项目可以实践练手,趁热打铁,将自动化测 ...

  7. 从应用层到网络层排查 Dubbo 接口超时全记录

    大家好,我是坤哥 我们常说面试造火箭,很多人对此提出质疑,相信大家看了这篇文章会明白面试造火箭的道理,这篇排查问题的技巧涉及到索引,GC,容器,网络抓包,全链路追踪等基本技能,没有这些造火箭的本事,排 ...

  8. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作fedora27-18

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作fedora27-18 欢迎加QQ群:1026880196 进行交流学习   制作OpenSt ...

  9. Fiddler使用 断点 模拟返回 AutoResponder Mock 模拟数据 相关学习记录

    断点 测试中有时需要改变发出去的请求信息,需要用到打断点的方法.断点包含两种方式: before response:在request请求的时候,未到达服务器之前,一般用来修改请求参数 after re ...

  10. 实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能

    本篇实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能需求描述:1. 请求后端Api接口地址2. 根据返回信息进行判断处理前端 ...