037.Python的UDP语法
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语法的更多相关文章
- python yield from 语法
python yield from 语法 yield语法比较简单, 教程也很多 , yield from的中文讲解很少 , python官网是这样解释的 PEP 380 adds the yield ...
- Python基础:语法基础(3)
本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...
- Python的基础语法(二)
0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...
- 六. Python基础(6)--语法
六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...
- 五. Python基础(5)--语法
五. Python基础(5)--语法 1 ● break结束的是它所在的循环体, continue是让它所在的循环体继续循环 # 打印: 1 10 2 10 3 10 4 10 5 10 6 10 7 ...
- 四. Python基础(4)--语法
四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次 sum += i i ...
- 三. Python基础(3)--语法
三. Python基础(3)--语法 1. 字符串格式化的知识补充 tpl = "我是%s,年龄%d,学习进度100%" %('Arroz',18) print(tpl) # 会提 ...
- 二. Python基础(2)--语法
二. Python基础(2)--语法 1.实现一个简单的登录系统 '''# 形式1 n = 1 while n < 4: name = input("请输入姓名\n" ...
- 一. Python基础(1)--语法
一. Python基础(1)--语法 1. 应用程序 1.1 什么是计算机(Computer)? 组成 ①运算器 arithmetic unit; ※ Arithmetic unit and cont ...
随机推荐
- 结对作业-stage_2
见队友博客:结对编程-stage_2
- 网络编程NIO之Reactor线程模型
目录 单Reactor线程模型 基于工作线程的Reactor线程模型 多Reactor线程模型 多Reactor线程模型示例 结束语 上篇文章中写了一些NIO相关的知识以及简单的NIO实现示例,但是示 ...
- 简介TLS 1.3
0x00 前言 最近在阅读论文,其中阅读了 WWW2021的一篇文章"TLS 1.3 in Practice: How TLS 1.3 Contributes to the Internet ...
- 网页解析:Xpath 与 BeautifulSoup
1. Xpath 1.1 Xpath 简介 1.2 Xpath 使用案例 2. BeautifulSoup 2.1 BeautifulSoup 简介 2.2 BeautifulSoup 使用案例 1) ...
- k8s service NodePort 方式向外发布
k8s service NodePort 方式向外发布 k8s 无头service 方式向内发布 k8s service 服务发现 {ServiceName}.{Namespace}.svc.{Clu ...
- 一键打造vim ide 支持python golang shell等高级特性
1.vim-for-devops github: https://github.com/yxxhero/vim_for_devops 利用vim插件打造支持python.shell.golang的id ...
- MySQL8安装教程及问题解决
目录 1.下载MySQL的zip文件,解压,在根目录(bin所在的目录)下创建my.ini文件 2.管理员模式打开命令提示符(shell或者说小黑窗),按以下命令操作. 3.不过......我这里密码 ...
- hdu2482 字典树+spfa
题意: 给你一个地图,地图上有公交站点和路线,问你从起点到终点至少要换多少次公交路线. 思路: 首先上面的题意说的和笼统,没说详细是因为这个题目叙述的很多,描述起来麻烦, 下面 ...
- LA3942字典树+递推
题意: 给你一个字典,最多4000个单词,每个单词长度最多是100,然后给你一个串,问你这个子串可以被那些单词组合的组合数,比如字典里有4个单词a b ab cd,然后给你一个串abcd则a ...
- WinDBG 调试命令大全
转载收藏于:http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.html #调试命令窗口 ++++++++++++++++++++++++ ...