Python socket模块实现的udp通信功能示例


Posted in Python onApril 10, 2019

本文实例讲述了Python socket模块实现的udp通信功能。分享给大家供大家参考,具体如下:

socket介绍

socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:

它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、收发 email 等等。

模拟udp_socket客户端(发送端):udp_client.py

#coding=utf-8
import socket
# 获取本机的ip地址
def get_addr():
  # 获取本机计算机名称
  hostname = socket.gethostname()
  # 获取本机ip并返回
  return socket.gethostbyname(hostname)
# 创建udp套接字,
# AF_INET表示ip地址的类型是ipv4,
# SOCK_DGRAM表示传输的协议类型是udp
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 要发送的信息
test_data = raw_input('请输入要发送的消息:')
print 'send_data = ', test_data
# 要发送的ip地址和端口(元组的形式)
host = get_addr()
test_addr = (host, 8080)
print 'send_addr = ', test_addr
print 'prepare to send ------'
# 发送消息
udp_socket.sendto(test_data, test_addr)
# 关闭套接字
udp_socket.close()
print 'send end ------'

模拟udp_socket套接字服务端(接收端):udp_server.py

# coding=utf-8
import socket
# 获取本机的ip地址
def get_addr():
  # 获取本机计算机名称
  hostname = socket.gethostname()
  # 获取本机ip并返回
  return socket.gethostbyname(hostname)
# 创建udp套接字,
# AF_INET表示ip地址的类型是ipv4,
# SOCK_DGRAM表示传输的协议类型是udp
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定本地信息,若不绑定,系统会自动分配
host = get_addr()
bind_addr = (host, 8080)
print 'bind_addr = ', bind_addr
udp_socket.bind(bind_addr) # ip和port,ip一般不用写,表示本机的任何一个ip
# 等待接收数据
revc_data = udp_socket.recvfrom(1024) # 1024表示本次接收的最大字节数
# 打印接收到的数据
print 'revc_data = ', revc_data
print 'data = ', revc_data[0]
print 'ip_port = ', revc_data[1]
# 关闭套接字
udp_socket.close()

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

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

Python 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
python实现的二叉树算法和kmp算法实例
Apr 25 Python
简单介绍Python中的round()方法
May 15 Python
Python 序列的方法总结
Oct 18 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 Python
python中实现字符串翻转的方法
Jul 11 Python
python实现决策树分类
Aug 30 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
python3中for循环踩过的坑记录
Dec 14 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 #Python
一个可以套路别人的python小程序实例代码
Apr 09 #Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 #Python
详解Python 解压缩文件
Apr 09 #Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 #Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 #Python
由Python编写的MySQL管理工具代码实例
Apr 09 #Python
You might like
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
PHP访问Google Search API的方法
2015/03/05 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
d3.js实现图形拖拽
2019/12/19 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
Python 没有main函数的原因
2020/07/10 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
怎样在程序里获得一个空指针
2015/01/24 面试题
行政总经理岗位职责
2013/12/05 职场文书
先进工作者事迹材料
2014/12/23 职场文书
防汛通知
2015/04/25 职场文书
MySQL时区造成时差问题
2022/04/13 MySQL