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实现从url中提取域名的几种方法
Sep 26 Python
用Python计算三角函数之acos()方法的使用
May 15 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
Python使用zip合并相邻列表项的方法示例
Mar 17 Python
Selenium定位元素操作示例
Aug 10 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
python里glob模块知识点总结
Jan 05 Python
python创建字典及相关管理操作
Apr 13 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防止form重复提交的方法
2013/07/01 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
基于Python log 的正确打开方式
2018/04/28 Python
python处理数据,存进hive表的方法
2018/07/04 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
如何编写python的daemon程序
2021/01/07 Python
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
好的自荐信包括什么内容
2013/11/07 职场文书
模具数控专业自荐信
2014/01/27 职场文书
推普周活动总结
2014/08/28 职场文书
社会实践活动报告
2015/02/05 职场文书
2015年维修电工工作总结
2015/04/25 职场文书