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学习笔记(二)基础语法
Jun 06 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
python中子类调用父类函数的方法示例
Aug 18 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
Python基于scipy实现信号滤波功能
May 08 Python
Python3安装psycopy2以及遇到问题解决方法
Jul 03 Python
python的常见矩阵运算(小结)
Aug 07 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
Python 定义只读属性的实现方式
Mar 05 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 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实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
JavaScript初学者必看“new”
2017/06/12 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
详解django.contirb.auth-认证
2018/07/16 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Python中调用其他程序的方式详解
2019/08/06 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Python ini文件常用操作方法解析
2020/04/26 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
毕业生就业自荐信
2013/12/04 职场文书
大学生职业生涯规划书模版
2013/12/30 职场文书
购房协议书范本
2014/10/02 职场文书
学生个人评语大全
2015/01/04 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL