# -*- coding:utf-8 -*-

from SocketServer import TCPServer, StreamRequestHandler
import traceback class MyStreamRequestHandlerr(StreamRequestHandler):
"""
#继承StreamRequestHandler,并重写handle方法
#(StreamRequestHandler继承自BaseRequestHandler)
""" def handle(self):
while True:
# 客户端主动断开连接时,self.rfile.readline()会抛出异常
try:
# self.rfile类型是socket._fileobject,读写模式是"rb",方法有
# read,readline,readlines,write(data),writelines(list),close,flush
data = self.rfile.readline().strip()
print "receive from (%r):%r" % (self.client_address, data) # self.wfile类型是socket._fileobject,读写模式是"wb"
self.wfile.write(data.upper()+'\r\n')
except:
traceback.print_exc()
break if __name__ == "__main__":
host = "192.168.1.103" # 主机名,可以是ip,像localhost的主机名,或""
port = 8091 # 端口
addr = (host, port) server = TCPServer(addr, MyStreamRequestHandlerr)
server.serve_forever()

Python2 socket 多线程并发 ThreadingTCPServer Demo的更多相关文章

  1. Python2 socket 多线程并发 TCPServer Demo

    #coding=utf-8 import socket import threading,getopt,sys,string opts, args = getopt.getopt(sys.argv[1 ...

  2. Python Socket多线程并发

    1.SocketServer模块编写的TCP服务器端代码 Socketserver原理图 服务端: import SocketServer #导入SocketServer,多线程并发由此类实现 cla ...

  3. TCP socket 多线程 并发服务器(发送)与客户端(接收)

    实现功能:Ubuntu上通过多线程实现服务器并发给客户端发送文件,携带包头,根据包头信息命名新文件.适用于短连接. 问题小结: 01. 调用嵌套在结构体中的结构体char 数组成员时,需要动态分配内存 ...

  4. java多线程并发执行demo,主线程阻塞

    其中有四个知识点我单独罗列了出来,属于多线程编程中需要知道的知识: 知识点1:X,T为泛型,为什么要用泛型,泛型和Object的区别请看:https://www.cnblogs.com/xiaoxio ...

  5. go 多线程并发 queue demo

    原文链接:Writing worker queues, in Go 1.work.go [root@wangjq queue]# cat work.go package main import &qu ...

  6. 多线程并发执行任务,取结果归集。终极总结:Future、FutureTask、CompletionService、CompletableFuture

    目录 1.Futrue 2.FutureTask 3.CompletionService 4.CompletableFuture 5.总结 ================正文分割线========= ...

  7. python多进程并发和多线程并发和协程

    为什么需要并发编程? 如果程序中包含I/O操作,程序会有很高的延迟,CPU会处于等待状态,这样会浪费系统资源,浪费时间 1.Python的并发编程分为多进程并发和多线程并发 多进程并发:运行多个独立的 ...

  8. dubbo协议下的单一长连接与多线程并发如何协同工作

    上班的路上突然就冒出了这么个问题:既然在dubbo中描述消费者和提供者之间采用的是单一长连接,那么如果消费者端是高并发多线程模型的web应用,单一长连接如何解决多线程并发请求问题呢? 其实如果不太了解 ...

  9. 多线程并发练习(Day35)

    练习一 #_*_coding:utf-8_*_ #!/usr/bin/env python import multiprocessing import threading import socket ...

随机推荐

  1. LeetCode 75 Sort Colors(颜色排序)

    翻译 给定一个包括红色.白色.蓝色这三个颜色对象的数组.对它们进行排序以使同样的颜色变成相邻的,其顺序是红色.白色.蓝色. 在这里,我们将使用数字0.1和2分别来代表红色.白色和蓝色. 原文 Give ...

  2. (html)前端如何验证token的合法性来判断用户是否登录?

    问题: (html)前端如何验证token的合法性来判断用户是否登录?描述: 1.我使用了JWT的方式,后端生成了一个token,将其返回给前端,前端获取到后每次请求接口都附带上这个token,后端来 ...

  3. the method getcontextpath() from the type httpservletrequest refers to the missing type string

    导入项目的时候容易报出这个错误,主要因为JRE(jdk版本不一致). 解决方法:就是重新配置路径,配置你机器上安装的jdk. 右击该出错项目→ Build Path → Configure Build ...

  4. js中级四: 跨域

    原文链接:http://www.cnblogs.com/scottckt/archive/2011/11/12/2246531.html 什么是跨域? 首先什么是跨域,简单地理解就是因为JavaScr ...

  5. 转:C++ 关键字 inline详细介绍

    1.  内联函数 在C++中我们通常定义以下函数来求两个整数的最大值: int max(int a, int b) { return a > b ? a : b; } 为这么一个小的操作定义一个 ...

  6. Unity3d地形刷入自定义树木

    Unity3d中新建地形后,可以在地形上刷草及树木等植物.那么接下来讲的就是如何刷入自定义树木. 我没有自定义的树木素材,所以就以导入的坦克模型为例,目标是将坦克模型的炮塔部分作为自定义“树木”刷入地 ...

  7. Vsphere笔记07 Vcenter 部署流程 2

    7.Vcenter 部署流程 2   Vcenter 安装需求   1.硬件要求 CPU:支持VT-X技术并开启内存:4G或4G 以上   2.系统要求 Windows 2008 R2 x64 Vsp ...

  8. Java进阶01 String类(转载)

    String类包含在java.lang包中.这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class).我们不需要显式的使用import引入String类. ...

  9. java 提取数据

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class TextNested { public sta ...

  10. C++数组类型与函数类型

    之所以将C++的数组类型与函数类型拿到一块说,是因为两者在很多地方都一样. 首先,声明形式上类似: 数组类型:  type [num]                                 ...