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程序设计有所帮助。
相关推荐
-
python网络编程示例(客户端与服务端)
client客户端 复制代码 代码如下: if __name__ == '__main__': import socket import os sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('localhost', 8001)) import time time.sleep(2) sock.send('1') p
-
Python通过websocket与js客户端通信示例分析
具体的 websocket 介绍可见 http://zh.wikipedia.org/wiki/WebSocket 这里,介绍如何使用 Python 与前端 js 进行通信. websocket 使用 HTTP 协议完成握手之后,不通过 HTTP 直接进行 websocket 通信. 于是,使用 websocket 大致两个步骤:使用 HTTP 握手,通信. js 处理 websocket 要使用 ws 模块: Python 处理则使用 socket 模块建立 TCP 连接即可,比一般的 soc
-
python实现ftp客户端示例分享
复制代码 代码如下: #!/usr/bin/python#coding:utf-8#write:JACK#info:ftp exampleimport ftplib, socket, osfrom time import sleep, ctime def LoginFtp(self): ftps = ftplib.FTP() ftps.connect(self.host,self.port) ftps.login(self.name,self.passw
-
python网络编程学习笔记(六):Web客户端访问
6.1 最简单的爬虫 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.python的urllib\urllib2等模块很容易实现这一功能,下面的例子实现的是对baidu首页的下载.具体代码如下: 复制代码 代码如下: import urllib2page=urllib2.urlopen("http://www.baidu.com")print page.read() 6.2 提交表单数据 (1)用GET方法提交数据提交表单的GET方法是把表单数据
-
python实现telnet客户端的方法
本文实例讲述了python实现telnet客户端的方法.分享给大家供大家参考.具体如下: python实现的telnet客户端程序,python自带一个telnetlib模块,可以通过其Telnet类实现telnet操作 import getpass import sys import telnetlib HOST = "hostname" user = raw_input("Enter your remote account:") password = getpa
-
python实现socket客户端和服务端简单示例
复制代码 代码如下: import socket#socket通信客户端def client(): mysocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) mysocket.connect(('127.0.0.1',8000)) mysocket.send('hello') while 1: data=mysocket.recv(1024) if data: pri
-
python服务器与android客户端socket通信实例
本文实例讲述了python服务器与android客户端socket通信的方法.分享给大家供大家参考.具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: 复制代码 代码如下: #server.py import socket def getipaddrs(hostname):#只是为了显示IP,仅仅测试一下 result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM) re
-
Python实现的简单文件传输服务器和客户端
还是那个题目(题目和流程见java版本),感觉光用java写一点新意也没有,恰巧刚学习了python,何不拿来一用,呵呵: 服务器端: import SocketServer, time class MyServer(SocketServer.BaseRequestHandler): userInfo = { 'yangsq' : 'yangsq', 'hudeyong' : 'hudeyong', 'mudan' : 'mudan' } def handle(self): print 'Con
-
Python警察与小偷的实现之一客户端与服务端通信实例
本文实例讲述了Python警察与小偷的实现之一客户端与服务端通信,分享给大家供大家参考.具体方法分析如下: 该实例来源于ISCC 2012 破解关第四题 目的是通过逆向police,实现一个thief,能够与police进行通信 实际上就是一个RSA加密通信的例子,我们通过自己编写客户端和服务端来实现上面的thief和police的功能. 要通信,这们这次先通过python写出可以进行网络连接的客户端与服务端. 服务端代码如下: #!/usr/bin/env python import Sock
-
Python基于socket实现TCP客户端和服务端
目录 一.基于socket实现的TCP客户端 二.基于socket实现的TCP服务端 一.基于socket实现的TCP客户端 import socket # 建立socket对象 # 参数一表示IP地址类型(AF_INET为IPV4,AF_INET6为IPV6),参数二表示连接的类型(SOCK_STREAM表示TCP形式,SOCK_DGRAM表示UDP形式) client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 代
-
Java基于socket实现的客户端和服务端通信功能完整实例
本文实例讲述了Java基于socket实现的客户端和服务端通信功能.分享给大家供大家参考,具体如下: 以下代码参考马士兵的聊天项目,先运行ChatServer.java实现端口监听,然后再运行ChatClient.java 客户端实例 ChatClient.java package socketDemo; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; public class Ch
-
Socket结合线程池使用实现客户端和服务端通信demo
目录 引导语 1.要求 2.客户端代码 3.服务端代码 3.1.对客户端请求进行控制 3.2.服务端任务的处理逻辑 4.测试 5.总结 引导语 Socket 面试最终题一般都是让你写一个简单的客户端和服务端通信的例子,本文就带大家一起来写这个 demo. 1.要求 可以使用 Socket 和 ServiceSocket 以及其它 API: 写一个客户端和服务端之间 TCP 通信的例子: 服务端处理任务需要异步处理: 因为服务端处理能力很弱,只能同时处理 5 个请求,当第六个请求到达服务器时,需要
-
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能.分享给大家供大家参考,具体如下: 由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收包. 前几天写了代码,但是把UDP的客户端和服务端使用TCP模式的代码了.今天在公司使用该工具的时候,发现了问题,忘记了UDP不需要验证.疏忽,疏忽.不过刚刚接触编程,可以原谅. 现在在家,已经把代码改好了.经测试可以使用. 先运行客户端: python Mini
-
python 实现客户端与服务端的通信
函数介绍 Socket对象方法: 服务端: 函数 描述 .bind() 绑定地址关键字,AF_INET下以元组的形式表示地址.常用bind((host,port)) .listen() 监听TCP,可以挂起的最大连接数,该值至少为1,一般设为5即可 .accept() 被动接受TCP客户端的连接 客户端: 函数 描述 .connect() 初始化服务器连接 .connect_ex() 是对connect()函数的扩展,当出错时返回出错码,不报异常 其它函数: 函数 描述 .recv() 接收数据
-
python利用socket实现客户端和服务端之间进行通信
目录 一.socket socket通信的条件:IP和端口 形象比喻 二.客户端实现过程 三.服务器实现过程 四.演示 五.实现持续通信过程 前言: 今天教大家通过Python进行Socket网络编程(做一个聊天程序),可以实现在不同的主机(电脑)之间进行通话. 具体效果如何,接着往下看: 可以看到客户端(上方)向服务器端(下方)发送了内容,服务器端进行了回复 [备注:客户端是我的本机,服务器是另一条主机(阿里云服务器)] 两台主机的目的:验证两台主机可以相互通信 一.socket 先简单给大家
-
python Socket之客户端和服务端握手详解
简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据 1. 客户端socketClient.py代码 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect(('127.0.0.1', 9999)) # 接收欢迎消息: print(s.recv(1024).decode('utf-8')) for data in [b'Michael', b'Tracy', b'
-
python实现单线程多任务非阻塞TCP服务端
本文实例为大家分享了python实现单线程多任务非阻塞TCP服务端的具体代码,供大家参考,具体内容如下 # coding:utf-8 from socket import * # 1.创建服务器socket sock = socket(AF_INET, SOCK_STREAM) # 2.绑定主机和端口 addr = ('', 7788) # sock.bind(addr) # 3. 设置最大监听数目,并发 sock.listen(10) # 4. 设置成非阻塞 sock.setblocking(
-
Python Websocket服务端通信的使用示例
1.唠唠叨叨 最近又回顾了下Websocket,发现已经忘的七七八八了.于是用js写了客户端,用python写了服务端,来复习一下这方面的知识. WebSocket 是一种标准协议,用于在客户端和服务端之间进行双向数据传输.但它跟 HTTP 没什么关系,它是基于 TCP 的一种独立实现. 以前客户端想知道服务端的处理进度,要不停地使用 Ajax 进行轮询,让浏览器隔个几秒就向服务器发一次请求,这对服务器压力较大.另外一种轮询就是采用 long poll 的方式,这就跟打电话差不多,没收到消息就一
随机推荐
- 匹配中文的正则(GB2312/utf-8)
- javascript中的Base64、UTF8编码与解码详解
- Vue学习笔记进阶篇之过渡状态详解
- hadoop格式化HDFS出现错误解决办法
- CentOS中yum 源的配置与使用详解
- 通过JS 获取Mouse Position(鼠标坐标)的代码
- js实现完美兼容各大浏览器的人民币大小写相互转换
- java 正则表达式基础,实例学习资料收集大全 原创
- Java中使用正则表达式获取网页中所有图片的路径
- C#利用Random得随机数求均值、方差、正态分布的方法
- 深入mysql创建自定义函数与存储过程的详解
- Markdown与Bootstrap相结合实现图片自适应属性
- JavaScript跨域调用基于JSON的RESTful API
- 5个Java API使用技巧
- js关于字符长度限制的问题示例探讨
- IIS配置与错误提示 解决方法
- JSP安全开发之XSS漏洞详解
- C#定时器实现自动执行的方法
- java实现简单的弹球游戏
- 详解如何在Spring Boot项目使用参数校验