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 可爱的大小写
Sep 06 Python
Python字符串匹配算法KMP实例
Jul 18 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python实现批量压缩图片
Jan 25 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
理解python中装饰器的作用
Jul 21 Python
django 认证类配置实现
Nov 11 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中的float类型使用说明
2010/07/27 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP chr()函数讲解
2019/02/11 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
计算机软件专业求职信
2014/06/10 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
工人先锋号申报材料
2014/12/29 职场文书
上课说话检讨书
2015/01/27 职场文书
小数乘法教学反思
2016/02/22 职场文书