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 相关文章推荐
简单的编程0基础下Python入门指引
Apr 01 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
python线程中的同步问题及解决方法
Aug 29 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
python快速排序的实现及运行时间比较
Nov 22 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
使用pytorch实现线性回归
Apr 11 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
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
js中document.write的那点事
2014/12/12 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
python插入排序算法的实现代码
2013/11/21 Python
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python 的内置字符串方法小结
2016/03/15 Python
遗传算法之Python实现代码
2017/10/10 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
python删除过期log文件操作实例解析
2018/01/31 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
软件测试专业推荐信
2014/09/18 职场文书
出差报告怎么写
2014/11/06 职场文书
安全生产标语口号
2015/12/26 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
德劲DE1108畅想
2021/04/22 无线电
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python