开源的是一个测试客户端,可以用来检验服务器端程序的并发处理能力。

使用方法为:

python epolltest.py --host=192.168.15.128 --port=8809 --degree=200

其中degree为并发线程数

python 版本为2.6

代码如下

from Queue import Queue
from threading import Thread
from subprocess import check_call
from os import *
import socket
import threading
import exceptions
import sys
import getopt

def do_stuff(q,host,port):

s = socket.socket() # Create a socket object

s.connect((host, int(port)))
while True:
try:
value=q.get()
except:
return
# call(["telnet", "192.168.15.128", "8088" , "<" , "echo.txt"])
# check_call("sh" +" autosend.sh" , shell=True)

s.send("suck me\n")
# print threading.current_thread(), value
s.close # Close the socket when done
q.task_done()

def main(argv):
try:
opts, args = getopt.getopt(argv,"h:p:d:",["host=","port=","degree="])
except getopt.GetoptError:
print "python epolltest.py --host=<ip> --port=<port> --degree=<degree>"
sys.exit(2)
for opt, arg in opts:
if opt=="--host":
host=arg
elif opt=="--port":
port=arg
elif opt=="--degree":
degree=arg

q = Queue(maxsize=0)

print degree
for i in range(int(degree)):
worker = Thread(target=do_stuff, args=(q,host,port ))
worker.setDaemon(True)
worker.start()

x=0
while x<=10000000:
q.put(x)
x+=1

q.join()
print "finish"

if __name__ == "__main__":
main(sys.argv[1:])

tcp服务的测试程序开源的更多相关文章

  1. C#高性能TCP服务的多种实现方式

    哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C#编写TCP服务的花样姿势!>. 本篇文章的主 ...

  2. C#高性能TCP服务

    C#高性能TCP服务 哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C#编写TCP服务的花样姿势!& ...

  3. C# 高性能 TCP 服务的多种实现方式

    哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C# 编写 TCP 服务的花样姿势!>. 本篇文 ...

  4. BeetleX之TCP服务应用详解

    BeetleX是.net core平台下的一个开源TCP 通讯组件,它不仅使用简便还提供了出色性能的支持,可以轻易让你实现上百万级别RPS吞吐的服务应用.组件所提供的基础功能也非常完善,可以让你轻易扩 ...

  5. 利用select实现IO多路复用TCP服务端

    一.相关函数 1.  int select(int maxfdp, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeva ...

  6. TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...

  7. Java网络编程(TCP服务端)

    /* * TCP服务端: * 1.创建服务端socket服务,并监听一个端口 * 2.服务端为了给客户端提供服务,获取客户端的内容,可以通过accept方法获取连接过来的客户端对象 * 3.可以通过获 ...

  8. Java TCP服务端向客户端发送图片

    /** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...

  9. ngrok首页、文档和下载 - Web服务安全通道 - 开源中国社区

    ngrok首页.文档和下载 - Web服务安全通道 - 开源中国社区      Web服务安全通道 ngrok 编辑/纠错    分享到     新浪微博腾讯微博    已用    +0    收藏 ...

随机推荐

  1. php获取本周和上周的开始日期和结束日期

    <?php header('Content-type: text/html; charset=utf-8'); $date=date('Y-m-d'); //当前日期 $first=1; //$ ...

  2. Redis基础

    Redis是开源的,支持网络.可基于内存也可持久化的key-value数据库,支持主从复制,读写分离,支持5种基本数据类型,高并发性能 安装redis数据库 下载:http://redis.io/do ...

  3. MySQL基础(三)——约束

    MySQL基础(三)--约束 约束是在表上强制执行的数据校验规则,主要用于维护表中数据的完整性以及当数据之间有以来关系时,保护相关的数据不会被删除. 根据约束对列的限制,可以划分为:单列约束(只约束一 ...

  4. 第一课 android环境搭建

    android环境搭建需要的工具: 1.JDK 2.eclipse 3.SDK 4.ADT

  5. Java IO流整理Rick

    Java 流IO部分: Console 控制台信息读取// ----------- Console Begin // ------------ 部分代码  Console cons ;  char[] ...

  6. Dev GridControl导出

    问题一. DevExpress GridView导出到Excel中不能导出自定义日期 问题描述: 我有一个第一列为日期列的GridView.它在运行时会绑定到日期,但他们通过CustomColumnD ...

  7. Mysql错误问题记录

    ① Incorrect string value: '\xE6\x94\xBE\xE5\xA4\xA7...' for column 'name' at row 1 Query…… 原因:编码不匹配. ...

  8. Java_你应该知道的26种设计模式

    四. 模板方法模式 Definition: Define the skeleton of an algorithm in an operation, deferring some steps to s ...

  9. Oracle ——————建表、select、视图

    --建表 -- 关键字 : create -- 用法 : /* create table table_name ( lie1_name 数据类型 是否为空, lie2_name 数据类型 是否为空, ...

  10. 安装 slowhttptest ddos攻击软件

    kali:apt-get install slowhttptest