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引用(import)文件夹下的py文件的方法
Aug 26 Python
python基于windows平台锁定键盘输入的方法
Mar 05 Python
用Python的pandas框架操作Excel文件中的数据教程
Mar 31 Python
Python简单实现enum功能的方法
Apr 25 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
python如何在循环引用中管理内存
Mar 20 Python
python 从csv读数据到mysql的实例
Jun 21 Python
pytorch permute维度转换方法
Dec 14 Python
python实现名片管理器的示例代码
Dec 17 Python
python使用正则来处理各种匹配问题
Dec 22 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
深入了解Python装饰器的高级用法
Aug 13 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
Symfony2安装的方法(2种方法)
2016/02/04 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
python实现简单猜单词游戏
2020/12/24 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
公司行政经理岗位职责
2013/12/24 职场文书
跑操口号
2014/06/12 职场文书
社区助残日活动总结
2014/08/29 职场文书
小班上学期个人总结
2015/02/12 职场文书
档案管理员岗位职责
2015/02/12 职场文书
跳高加油稿
2015/07/21 职场文书
尊师重教主题班会
2015/08/14 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书