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 相关文章推荐
selenium+python实现自动化登录的方法
Sep 04 Python
Python循环结构的应用场景详解
Jul 11 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
django实现用户注册实例讲解
Oct 30 Python
python模拟点击网页按钮实现方法
Feb 25 Python
pandas数据拼接的实现示例
Apr 16 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
python求解汉诺塔游戏
Jul 09 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
python基于tkinter实现gif录屏功能
May 19 Python
python神经网络学习 使用Keras进行回归运算
May 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
PHP实现微信网页授权开发教程
2016/01/19 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
python实现将文本转换成语音的方法
2015/05/28 Python
Python多进程同步简单实现代码
2016/04/27 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
django项目中新增app的2种实现方法
2020/04/01 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
印度在线购物网站:Paytmmall
2019/07/24 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
服务质量承诺书
2014/03/27 职场文书
解放思想演讲稿
2014/09/11 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
鼋头渚导游词
2015/02/05 职场文书
浅谈Redis缓冲区机制
2022/06/05 Redis
windows server2008 开启端口的实现方法
2022/06/25 Servers