Python2 socket TCPServer 多线程并发 超时关闭
在阿里云上测试过,可以直接使用。
用IP和端口发送数据,会返回echo:+接收到的数据
#coding=utf-8
import socket
import threading,getopt,sys,string
list=50
port=8001
opts, args = getopt.getopt(sys.argv[1:], "hp:l:",["help","port=","list="])
#设置默认的最大连接数和端口号,在没有使用命令传入参数的时候将使用默认的值
def usage():
print """
-h --help print the help
-l --list Maximum number of connections
-p --port To monitor the port number
"""
for op, value in opts:
if op in ("-l","--list"):
list = string.atol(value)
elif op in ("-p","--port"):
port = string.atol(value)
elif op in ("-h"):
usage()
sys.exit()
def jonnyS(client, address):
try:
#设置超时时间
client.settimeout(30)
while True:
#接收数据的大小
buf = client.recv(2048)
print"connect by",address
print buf
#将接收到的信息原样的返回到客户端中
client.send("echo:"+buf)
#超时后显示退出
except socket.timeout:
print 'time out'
#关闭与客户端的连接
client.close()
def main():
#创建socket对象。调用socket构造函数
#AF_INET为ip地址族,SOCK_STREAM为流套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "" # 主机名,可以是ip,像localhost的主机名,或""
port = 9097 # 端口
addr = (host, port)
sock.bind(addr)
#设置最多连接数
sock.listen(list)
print "in loop!"
while True:
#服务器套接字通过socket的accept方法等待客户请求一个连接
client,address = sock.accept()
thread = threading.Thread(target=jonnyS, args=(client, address))
thread.start()
if __name__ == '__main__':
print "main running"
main()
Python2 socket TCPServer 多线程并发 超时关闭的更多相关文章
- Python2 socket 多线程并发 TCPServer Demo
#coding=utf-8 import socket import threading,getopt,sys,string opts, args = getopt.getopt(sys.argv[1 ...
- Python Socket多线程并发
1.SocketServer模块编写的TCP服务器端代码 Socketserver原理图 服务端: import SocketServer #导入SocketServer,多线程并发由此类实现 cla ...
- 一小时学会用Python Socket 开发可并发的FTP服务器!!
socket是什么 什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求 ...
- Java多线程并发编程一览笔录
线程是什么? 线程是进程中独立运行的子任务. 创建线程的方式 方式一:将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法 方式二:声明实现 Runnable 接口的类.该 ...
- Java 多线程并发编程面试笔录一览
知识体系图: 1.线程是什么? 线程是进程中独立运行的子任务. 2.创建线程的方式 方式一:将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法 方式二:声明实现 Runn ...
- 将socket通信变成并发的方式
一 利用multiprocessing模块,开启多进程,实现socket通信并发 1. 开启子进程的两种方式 import time import random from multiprocessin ...
- 170314、工具:apache httpClient多线程并发情况下安全实用及工具类分享
简单用法介绍:介绍来源网络 建立连接:在HttpClient中使用多线程的一个主要原因是可以一次执行多个方法.在执行期间,每一个方法都使用一个HttpConnection实例.由于在同一时间多个连接只 ...
- Java 多线程并发编程一览笔录
Java 多线程并发编程一览笔录 知识体系图: 1.线程是什么? 线程是进程中独立运行的子任务. 2.创建线程的方式 方式一:将类声明为 Thread 的子类.该子类应重写 Thread 类的 run ...
- linux内核参数sysctl.conf,TCP握手ack,洪水攻击syn,超时关闭wait
题记:优化Linux内核sysctl.conf参数来提高服务器并发处理能力 PS:在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题.要提 ...
随机推荐
- Android-注解处理器
Android-Java注解处理器 基本概念 注解处理器(Annotation Processor)是javac的一个工具.它用来在编译时扫描和处理注解(Annotation).你能够对自己定义注解, ...
- hdu 4821 字符串hash+map判重 String (长春市赛区I题)
http://acm.hdu.edu.cn/showproblem.php?pid=4821 昨晚卡了非常久,開始TLE,然后优化了之后,由于几个地方变量写混.一直狂WA.搞得我昨晚都失眠了,,. 这 ...
- python简单网页服务器示例
参考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138683268974 ...
- YII用户注冊和用户登录(二)之登录和注冊在视图通过表单使用YII小物件并分析
2 登录和注冊在视图通过表单使用YII小物件并分析 <?php $form = $this -> beginWidget('CActiveForm', array( 'enableClie ...
- golang解析json
解析json,在很多语言都是很常用的,go提供了相应的包"encoding/json"来处理.直接上代码,如下: package main import ( "encod ...
- Spring4 MVC+Hibernate4 Many-to-many连接表+MySQL+Maven实例
这篇文章显示 Hibernate 的多对多实例,在 Spring MVC CRUD Web应用程序中连接表.我们将同时讨论管理多对多关系在视图和后端. 我们将使用应用程序的Web界面创建,更新,删除和 ...
- Java 学习笔记及资源
Spring框架入门HelloWorld :http://www.importnew.com/13246.html (iteye 唐 博客,跟我学Sprint) Spring 框架下载地址:http ...
- C#中的Form,textBox,Bitmap,PictureBox,Button,WebBrowser
因为今天是用的家里的电脑,用的不是retena屏的mac,因此稍后截图的时候大家看到的图片可能会有一些模糊,还请大家海涵... 兄弟们,我胡汉三又回来啦! 以下開始我们的第一个C#程序.我们之前已经通 ...
- Ninject学习笔记<四>
前言 前段时间看Mvc最佳实践时,认识了一个轻量级的IOC框架:Ninject.通过google搜索发现它是一个开源项目,最新源代码地址是:http://github.com/enkari/ninje ...
- ZOJ1311(Network)
题目链接:传送门 题目大意:给你一副无向图,求有多少个割点 题目思路:tarjan算法(此题读入是字符串读入,需注意) #include <iostream> #include <c ...