Python警察与小偷的实现之一客户端与服务端通信实例,python警察与小偷
Python警察与小偷的实现之一客户端与服务端通信实例,python警察与小偷
本文实例讲述了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程序设计有所帮助。
class People(object): def __init__(self, name, age): self.name = name self.age = ageclass worker(People): def __init__(self,name,age,salary): super(worker,self).__init__(name,age) self.salary = salarytom = People("Tom", 22)print type(tom).__name__#not a safe way, but no new objecttom.__class__=workerprint type(tom).__name__tom.salary = 250print tom.salary#safe way, but create a new objectworkerTom = worker("Tom", 22, 200)tom.__dict__ = workerTom.__dict__print type(tom).__name__print tom.salary
根据我以前学习C++程序经验,写一个能够从客户端向服务端发送文件的程序,会比较全面。
socket程序基本上都是通用的方式。
服务端:
创建socket
bind
listen
accetp
recv
客户端:
创建socket
connect
send
具体处理的话,服务端要加入多线程,一个线程处理一个业务。
希望能够帮到你。
相关内容
- python实现调用其他python脚本的方法,实现调用python脚本
- python获取文件版本信息、公司名和产品名的方法,
- python获取Linux下文件版本信息、公司名和产品名的方法
- Python获取文件ssdeep值的方法,
- python求crc32值的方法,pythoncrc32值
- python实现计算资源图标crc值的方法,pythoncrc
- python实现上传样本到virustotal并查询扫描信息的方法,
- python写xml文件的操作实例,pythonxml文件实例
- python解析xml文件操作实例,python解析xml实例
- python实现封装得到virustotal扫描结果,pythonvirustotal
评论关闭