Python警察与小偷的实现之一客户端与服务端通信实例


Posted in Python onOctober 09, 2014

本文实例讲述了Python警察与小偷的实现之一客户端与服务端通信,分享给大家供大家参考。具体方法分析如下:

该实例来源于ISCC 2012 破解关第四题
目的是通过逆向police,实现一个thief,能够与police进行通信

实际上就是一个RSA加密通信的例子,我们通过自己编写客户端和服务端来实现上面的thief和police的功能.

要通信,这们这次先通过python写出可以进行网络连接的客户端与服务端.

服务端代码如下:

#!/usr/bin/env python  
import SocketServer  
from time import ctime  
HOST = '127.0.0.1' 
PORT = 2012  
ADDR = (HOST, PORT)  
class MyRequestHandler(SocketServer.BaseRequestHandler): 
    def handle(self): 
        print '...connected from...', self.client_address 
        while True:  
            self.request.sendall('[%s] %s' % (ctime(),self.request.recv(1024))) 
 
 
tcpServ = SocketServer.ThreadingTCPServer(ADDR, MyRequestHandler)  
print 'waiting for connection...'  
tcpServ.serve_forever()

客户端代码如下:

#!/usr/bin/env python  
from socket import *  
HOST = '127.0.0.1'  
PORT = 2012  
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('%s\r\n' % data)  
  data = tcpCliSock.recv(BUFSIZ)  
  if not data:  
    break  
  print data.strip()  
#tcpCliSock.close()

这段代码可参考《python核心编程》

如果报python errno 10053错误,请确认下客户端的连接代码一定要在循环外
也就是:

tcpCliSock = socket(AF_INET, SOCK_STREAM)  
tcpCliSock.connect(ADDR)

要在while True的外面。

下次解决RSA加密的问题。

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

Python 相关文章推荐
bpython 功能强大的Python shell
Feb 16 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
Python多进程fork()函数详解
Feb 22 Python
如何利用Pyecharts可视化微信好友
Jul 04 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
python超时重新请求解决方案
Oct 21 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
Python 中由 yield 实现异步操作
May 04 Python
python中二维阵列的变换实例
Oct 09 #Python
python实现每次处理一个字符的三种方法
Oct 09 #Python
Python正则表达式匹配ip地址实例
Oct 09 #Python
Python数据结构之Array用法实例
Oct 09 #Python
python中pygame模块用法实例
Oct 09 #Python
python根据文件大小打log日志
Oct 09 #Python
python命令行参数解析OptionParser类用法实例
Oct 09 #Python
You might like
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Javascript实现的分页函数
2007/02/07 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
python实现图片批量剪切示例
2014/03/25 Python
简单上手Python中装饰器的使用
2015/07/12 Python
Python字符串切片操作知识详解
2016/03/28 Python
Python 含参构造函数实例详解
2017/05/25 Python
Python 操作文件的基本方法总结
2017/08/10 Python
vscode 远程调试python的方法
2017/12/01 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python实现最常见加密方式详解
2019/07/13 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
Java基础面试题
2012/11/02 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
药品营销专业毕业生自荐信
2014/07/02 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
政风行风建设整改方案
2014/10/27 职场文书
单位实习鉴定评语
2015/01/04 职场文书
如何用python插入独创性声明
2021/03/31 Python