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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
Python探索之修改Python搜索路径
Oct 25 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
PyQt5的相对布局管理的实现
Aug 07 Python
python3字符串输出常见面试题总结
Dec 01 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 Python
python图像处理 PIL Image操作实例
Apr 09 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
curl实现站外采集的方法和技巧
2014/01/31 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
jquery ajax执行后台方法
2010/03/18 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
关于express与koa的使用对比详解
2018/01/25 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
python生成验证码图片代码分享
2016/01/28 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python requests证书问题解决
2019/09/05 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
使用Python构造hive insert语句说明
2020/06/06 Python
大学优秀班主任事迹材料
2014/05/02 职场文书
英文演讲稿
2014/05/15 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
员工工作及收入证明
2014/10/28 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
爱国主义主题班会
2015/08/14 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书