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 相关文章推荐
Windows8下安装Python的BeautifulSoup
Jan 22 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
transform python环境快速配置方法
Sep 27 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
Python 处理图片像素点的实例
Jan 08 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 Python
Django如何使用redis作为缓存
May 21 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 Python
python 基于DDT实现数据驱动测试
Feb 18 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将任何格式视频转为flv的代码
2009/09/03 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
php 常用的系统函数
2017/02/07 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
Python常用的日期时间处理方法示例
2015/02/08 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
python添加菜单图文讲解
2019/06/04 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
几个Shell Script面试题
2014/04/18 面试题
优秀班主任经验交流材料
2014/06/02 职场文书
医院节能减排方案
2014/06/13 职场文书
教师求职自荐书
2014/06/14 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
2015年工会工作总结
2015/03/30 职场文书
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL