Python网络编程之TCP与UDP协议套接字用法示例


Posted in Python onFebruary 02, 2018

本文实例讲述了Python网络编程之TCP与UDP协议套接字用法。分享给大家供大家参考,具体如下:

TCP协议

服务器端:

#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM) ##创建服务器TCP套接字
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
  print 'waiting for connection...'
  tcpCliSock, addr = tcpSerSock.accept() ##等待客户端连接
  print '...connected from:', addr
  while True:
    data = tcpCliSock.recv(BUFSIZ) ##监听客户端是否发送消息
    if not data:
      break
    tcpCliSock.send('[%s] %s' % (
      ctime(), data))
  tcpCliSock.close()
tcpSerSock.close()

客户端:

#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)  ##创建客户端TCP套接字
tcpCliSock.connect(ADDR) ##连接服务器
while True:
  data = raw_input('> ')
  if not data:
    break
  tcpCliSock.send(data)
  data = tcpCliSock.recv(BUFSIZ) ##监听客户端发送消息
  if not data:
    break
  print data
tcpCliSock.close()

UDP协议

服务器端:

#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
  print 'waiting for message...'
  data, addr = udpSerSock.recvfrom(BUFSIZ)##监听并接受客户端发的消息
  udpSerSock.sendto('[%s] %s' % (  ##给消息加上时间戳并返回给客户端
    ctime(), data), addr)
  print '...received from and returned to:', addr
udpSerSock.close()

客户端:

#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)
while True:
  data = raw_input('> ')
  if not data:
    break
  udpCliSock.sendto(data, ADDR) ##给服务器发送数据
  data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客户端接受带时间戳的数据
  if not data:
    break
  print data
udpCliSock.close()

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

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

Python 相关文章推荐
python实现数通设备端口监控示例
Apr 02 Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
Numpy数组转置的两种实现方法
Apr 17 Python
详解python里的命名规范
Jul 16 Python
python 字典中取值的两种方法小结
Aug 02 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
linux下python中文乱码解决方案详解
Aug 28 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python星号*与**用法分析
Feb 02 #Python
Python模块WSGI使用详解
Feb 02 #Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 #Python
tensorflow中next_batch的具体使用
Feb 02 #Python
Python输出各行命令详解
Feb 01 #Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 #Python
Python实现的视频播放器功能完整示例
Feb 01 #Python
You might like
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
nodejs简单实现操作arduino
2016/09/25 NodeJs
微信小程序 参数传递详解
2016/10/24 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
python3.3实现乘法表示例
2014/02/07 Python
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
使用Tkinter制作信息提示框
2020/02/18 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
跟单文员岗位职责
2014/01/03 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
五心教育心得体会
2014/09/04 职场文书
迎新生标语大全
2014/10/06 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2019年教师入党申请书
2019/06/27 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
python基础之停用词过滤详解
2021/04/21 Python
go类型转换及与C的类型转换方式
2021/05/05 Golang
分享几个简单MySQL优化小妙招
2022/03/31 MySQL
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技