python实现一个简单的udp通信的示例代码


Posted in Python onFebruary 01, 2019

什么是 Socket?

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

python创建套接字

socket.socket([family[, type[, proto]]])
参数解析:
family: AF_UNIX(适用跨机通信) 或 AF_INET(IPv4)(适用本机通信)
type: 套接字类型,可以根据是面向连接的还是非连接分为 SOCK_STREAM(TCP) 或 SOCK_DGRAM(UDP)
protocol: 一般不填默认为0.

客户端代码:udp_client.py

第一步:导入socket模块和创建套接字

import socket
u_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

第二步:开始通信

# s.getsockname()  返回套接字自己的地址。
print("%s:%s 开始工作" %u_client.getsockname())

while True:
  # 发送数据
  data = input("input>>>")
  u_client.sendto(data.encode('utf-8'), ("localhost", 8887)) 


  # 退出系统操作
  if data == 'exit':
    break

  # 接收数据
  data, addr = u_client.recvfrom(1024)
  print("客户端接收信息的来源: %s:%s" %addr)
  print("客户端接收信息的数据: %s" %data.decode('utf-8'))

第三步:关闭套接字

u_client.close()

服务端代码:udp_server.py

第一步:导入socket模块和创建套接字

import socket
u_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

第二步:开始通信

# 绑定端口
u_server.bind(('localhost', 8887))

print("%s:%s 开始工作" %u_server.getsockname())

while True:
  # 接收数据
  # u_server.recvfrom() 接收UDP数据,返回值是(data,address)
  data, addr = u_server.recvfrom(1024)
  print("接收信息的来源: %s:%s" %addr)
  print("接收信息的数据: %s" %data.decode('utf-8'))

  # 发送原地址数据
  send_data = ("接收到数据:"+data.decode('utf-8')+" --Thanks").encode('utf-8')
  u_server.sendto(send_data, addr)

  # 退出系统操作
  if(data.decode('utf-8') == 'exit'):
    break

第三步:关闭套接字

u_server.close()

测试结果

新建两个cmd窗口,分为执行客户端和服务端的代码

python实现一个简单的udp通信的示例代码

python实现一个简单的udp通信的示例代码

python实现一个简单的udp通信的示例代码

python实现一个简单的udp通信的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
Apr 19 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
python flask搭建web应用教程
Nov 19 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
python实现b站直播自动发送弹幕功能
Feb 20 Python
Python读取指定日期邮件的实例
Feb 01 #Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 #Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 #Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 #Python
深入理解Python异常处理的哲学
Feb 01 #Python
python for 循环获取index索引的方法
Feb 01 #Python
对python For 循环的三种遍历方式解析
Feb 01 #Python
You might like
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
jQuery数组处理方法汇总
2011/06/20 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
Python列表生成器的循环技巧分享
2015/03/06 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
Python线程之定位与销毁的实现
2019/02/17 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
客服专员岗位职责范本
2013/11/29 职场文书
广告创意求职信
2014/03/17 职场文书
计算机专业求职信
2014/06/02 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
行政上诉状范文
2015/05/23 职场文书
公务员处分决定书
2015/06/25 职场文书
婚宴来宾致辞
2015/07/28 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
redis 查看所有的key方式
2021/05/07 Redis
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
Vue图片裁剪组件实例代码
2021/07/02 Vue.js