python实现TCP服务器端与客户端的方法详解


Posted in Python onApril 30, 2015

本文实例讲述了python实现TCP服务器端与客户端的方法。分享给大家供大家参考。具体如下:

TCP服务器程序(tsTserv.py):

from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
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()

TCP客户端程序(tsTclnt.py):

from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
  data = raw_input('> ')
  if not data:
    break
  tcpCliSock.send(data)
  data1 = tcpCliSock.recv(BUFSIZ)
  if not data1:
    break
  print data1
tcpCliSock.close()

运行说明:先运行服务器程序,作用类似于打开服务器保持等待客户请求,再运行客户端程序。

运行界面如下:

服务器端:

D:\code\ex>python tsTserv.py
waiting for connection...
...connected from: ('127.0.0.1', 2883)
waiting for connection...
...connected from: ('127.0.0.1', 2885)
waiting for connection...
...connected from: ('127.0.0.1', 2889)
waiting for connection...
...connected from: ('127.0.0.1', 2891)
waiting for connection...
...connected from: ('127.0.0.1', 2892)
waiting for connection...
...connected from: ('127.0.0.1', 2893)
waiting for connection...

客户端:

D:\code\ex>python tsTclnt.py
> 1
[Thu Feb 02 15:52:21 2012] 1
> 2
[Thu Feb 02 15:52:22 2012] 2
> 3
[Thu Feb 02 15:52:22 2012] 3
> 5
[Thu Feb 02 15:52:23 2012] 5
> 6
[Thu Feb 02 15:52:24 2012] 6
>
D:\code\ex>

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

Python 相关文章推荐
零基础写python爬虫之HTTP异常处理
Nov 05 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
基于Python log 的正确打开方式
Apr 28 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
python Django里CSRF 对应策略详解
Aug 05 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
Python猴子补丁知识点总结
Jan 05 Python
python如何实现单链表的反转
Feb 10 Python
Python生成器常见问题及解决方案
Mar 21 Python
python opencv实现简易画图板
Aug 27 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
Elasticsearch 基本查询和组合查询
Apr 19 Python
python排序方法实例分析
Apr 30 #Python
python中lambda与def用法对比实例分析
Apr 30 #Python
python中self原理实例分析
Apr 30 #Python
部署Python的框架下的web app的详细教程
Apr 30 #Python
python实现清屏的方法
Apr 30 #Python
Python中类的定义、继承及使用对象实例详解
Apr 30 #Python
python中global用法实例分析
Apr 30 #Python
You might like
用PHP调用数据库的存贮过程!
2006/10/09 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
定义php常量的详解
2013/06/09 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python对文件操作知识汇总
2016/05/15 Python
python制作小说爬虫实录
2017/08/14 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
基于python 取余问题(%)详解
2020/06/03 Python
keras导入weights方式
2020/06/12 Python
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
社会实践感言
2014/01/25 职场文书
学校中秋节活动总结
2015/03/23 职场文书
代理词怎么写
2015/05/25 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
MongoDB支持的索引类型
2022/04/11 MongoDB
Python软件包安装的三种常见方法
2022/07/07 Python