python SocketServer 框架编程

1. SocketServer框架

  在python中,socketserver是一个已集成的模块,它有以下特点:

  

  • 可用SocketServer框架创建TCP和UDP服务器。
  • 在后台为你做好每一个基础步骤。
  • 可以手动创建一个服务器欺骗客户端和分析它的行为。

2. SocketServer模块的用法

  • 必须是BaseRequestHandler的子类
  • 重写handle()函数
  • 调用handle_request或者serve_forever处理客户端程序。
  • 对TCP 服务端来说
    • self.request是客户端Socket
    • self.client_address是客户端的详细地址

3. python 代码

服务端:

#!/usr/bin/env python
# _*_ coding=utf-8 _*_

import SocketServer

class SockHandler(SocketServer.BaseRequestHandler):

    def handle(self):
        print "接收到客户端的一个连接:",self.client_address
        data = ‘start‘

        while len(data):
            data = self.request.recv(2048)
            self.request.send("返回: " + data)

        print "客户端关闭... ..."

serAddr = ("0.0.0.0",8888)
print "等待连接... ..."

server = SocketServer.TCPServer(serAddr,SockHandler)

server.serve_forever()

客户端用nc命令进行测试:

$ nc 192.168.1.95 8888

你好

返回: 你好

okay

返回: okay

时间: 2024-11-09 04:41:38

python SocketServer 框架编程的相关文章

python之高性能网络编程并发框架eventlet实例

http://blog.csdn.net/mingzznet/article/details/38388299 前言: 虽然 eventlet 封装成了非常类似标准线程库的形式,但线程和eventlet在实际并发执行流程仍然有明显区别.在没有出现 I/O 阻塞时,除非显式声明,否则当前正在执行的 eventlet 永远不会把 cpu 交给其他的 eventlet,而标准线程则是无论是否出现阻塞,总是由所有线程一起争夺运行资源.所有 eventlet 对 I/O 阻塞无关的大运算量耗时操作基本没有

python之网络编程

14.1.1 socket模块 在网络编程中德一个基本组件就是套接字.套接字主要是两个程序之间的信息通道. 套接字包括两个:服务器套接字和客户机套接字.创建一个服务器套接字后,让它等待连接.这样它就在某个网络地址处监听. 一个套接字就是一个socket模块中socket类的实例.它的实例化需要3个参数:第一个参数是地址族(默认是socket.AF_INET);第2个参数是流(socket.SOCK_STREAM,默认值)或数据报(socket.SOCK_DGRAM)套接字.第三个参数是使用的协议

【Python】网络编程

1.TCP编程 2.SocketServer模块 3.Twisted框架 4.UDP编程 1.TCP编程--TCP是面向连接的,其一般的设计如下: # encoding:utf-8 ''' Created on 2014-6-20 @author: Administrator ''' from socket import socket, AF_INET, SOCK_STREAM import time import threading class SockServer(object): def

Python中socket编程

1.Socket介绍: Python中提供socket.py标准库,非常底层的接口库. Socket是一种通用的网络编程接口,和网络层次没有一一对应关系. 跨操作系统的.紧密结合tcp和udp来使用的. 接口简单,但是背后的原理不简单,ip加tcp,通过插两端.通过socket通道:连接程序. 建立关联. apc库. 加端口是因为应用程序太多了.绑定ip地址,作为假端口. 端口是由谁管理的 一般都是tcp和udp编程.Socket基本的,chatserver. 协议族:AF 表示address

Python黑帽编程2.7 异常处理

Python黑帽编程2.7 异常处理 异常是个很宽泛的概念,如果程序没有按预想的执行,都可以说是异常了.遇到一些特殊情况没处理会引发异常,比如读文件的时候文件不存在,网络连接超时.程序本身的错误也可以算作异常,比如把字符串当整数来处理,拼写错误. 不论是系统还是框架,都会对基本异常进行分类,比如IO异常,内存溢出等等.很多时候,针对特有的业务,我们也可以自定异常. 下面我们先看一个引发异常的例子: Print 'hello' 这个例子很简单,我们将print的首字母大写.这会引发一个错误: 图2

Python金融应用编程(数据分析、定价与量化投资)

近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域.所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技术实现准确的金融资产定价以及交易机会的发现.量化分析目前已经涉及到金融领域的方方面面,包括基础和衍生金融资产定价.风险管理.量化投资等.随着大数据技术的发展,量化分析还逐步与大数据结合在一起,对海量金融数据实现有效和快速的运算与处理. 在量化金融的时代,选用一种合适的编程语言对于金融模型的实现是至关

QT开发(三十八)——Model/View框架编程

QT开发(三十八)--Model/View框架编程 一.自定义模型 1.自定义只读模型 QAbstractItemModel为自定义模型提供了一个足够灵活的接口,能够支持数据源的层次结构,能够对数据进行增删改操作,还能够支持拖放.QT提供了 QAbstarctListModel和QAbstractTableModel两个类来简化非层次数据模型的开发,适合于结合列表和表格使用. 自定义模型需要考虑模型管理的的数据结构适合的视图的显示方式.如果模型的数据仅仅用于列表或表格的显示,那么可以使用QAbs

Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)

Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上) 网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的软件. 编写嗅探器,捕获数据是前置功能,数据分析要建立在捕获的基础上.本节就数据捕获的基本原理和编程实现做详细的阐述. 4.1.1 以太网网卡的工作模式 以太网网卡是我们日常生活中见得最多的网卡,我们的电脑通过网线或者wifi接入网络,使用的都是以太网网卡. 图2 常用的以太网卡支持以下工作模式:广播模式.多播模式.直接模式和混杂模式.

Awesome Python,Python的框架集合

Awesome Python A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php. Awesome Python Environment Management 环境管理 Package Management              软件包管理 Package Repositories              软件源 Distribution