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 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
Python中zip()函数用法实例教程
Jul 31 Python
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
Python探索之Metaclass初步了解
Oct 28 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
对python调用RPC接口的实例详解
Jan 03 Python
python获取点击的坐标画图形的方法
Jul 09 Python
django的model操作汇整详解
Jul 26 Python
python日期与时间戳的各种转换示例
Feb 12 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
python中append函数用法讲解
Dec 11 Python
深入浅析Django MTV模式
Sep 04 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的explode和implode的使用说明
2011/07/17 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
在Django中创建动态视图的教程
2015/07/15 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
python collections模块的使用
2020/10/16 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
就业自荐信
2013/12/04 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
司仪主持词两篇
2014/03/22 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
创业计划书之服装
2019/10/07 职场文书
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技