欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-12 09:35:22
本文实例讲述了python警察与小偷的实现之一客户端与服务端通信,分享给大家供大家参考。具体方法分析如下: 该实例来源于iscc 2012 破解关第四题 目的是通过逆...

本文实例讲述了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 errno 10053错误,请确认下客户端的连接代码一定要在循环外
也就是:

tcpclisock = socket(af_inet, sock_stream)  
tcpclisock.connect(addr)  

要在while true的外面。

下次解决rsa加密的问题。

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

上一篇:

下一篇: