Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】


Posted in Python onOctober 11, 2019

本文实例讲述了Python 网络编程之UDP发送接收数据功能。分享给大家供大家参考,具体如下:

demo.py(UDP发送数据):

import socket # 导入socket模块
def main():
  # 创建一个udp套接字
  udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  # 绑定本机ip和端口号 (发送数据时,如果不绑定,系统会随机分配端口号。接收数据时,一般需要手动绑定ip和端口)
  udp_socket.bind(("", 7890)) # 空字符串""表示本地ip
  # 从键盘获取数据
  send_data = input("请输入要发送的数据:")
  # 可以使用套接字接收和发送数据
  # udp_socket.sendto(b"hahahah", ("192.168.33.53", 7788)) # 字符串前的b表示bytes字节类型
  udp_socket.sendto(send_data.encode("utf-8"), ("192.168.33.53", 7788)) # encode将字符串转成bytes类型
  # 关闭套接字
  udp_socket.close()
if __name__ == "__main__":
  main()

demo.py(UDP接收数据):

import socket
def main():
  # 1. 创建套接字
  udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  # 2. 绑定本机ip和端口
  udp_socket.bind(("", 7788)) # 绑定本机的ip和端口(元组类型) ""表示本机ip
  # 3. 用套接字接收数据
  recv_data = udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数。会阻塞代码,直到接收到数据
  # recv_data这个变量中存储的是一个元组 (接收到的数据,(发送方的ip, port))
  recv_msg = recv_data[0] # 字节类型 存储接收到的数据
  send_addr = recv_data[1] # 元组 存储发送方的地址和端口信息
  # 4. 打印接收到的数据
  # print(recv_data) # 元组 (接收到的数据,(发送方的ip, port))
  print("%s:%s" % (str(send_addr), recv_msg.decode("gbk"))) # decode将字节转成字符串
  # 5. 关闭套接字
  udp_socket.close()
if __name__ == "__main__":
  main()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python的id()函数介绍
Feb 10 Python
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
django admin后台添加导出excel功能示例代码
May 15 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
解析Python3中的Import
Oct 13 Python
pyqt5中动画的使用详解
Apr 01 Python
django queryset相加和筛选教程
May 18 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
Mar 03 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 #Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 #Python
Python中的延迟绑定原理详解
Oct 11 #Python
python pycharm的安装及其使用
Oct 11 #Python
详解Python3迁移接口变化采坑记
Oct 11 #Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 #Python
Pycharm 2019 破解激活方法图文详解
Oct 11 #Python
You might like
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
javascript实现数独解法
2015/03/14 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Python运行DLL文件的方法
2020/01/17 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
住宅使用说明书
2014/05/09 职场文书
机械操作工岗位职责
2014/08/08 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
毕业典礼邀请函
2015/01/31 职场文书
个人年终总结怎么写
2015/03/09 职场文书
创业计划书之干洗店
2019/09/10 职场文书
导游词之山东孔庙
2019/11/04 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python