zoukankan      html  css  js  c++  java
  • tcp服务的测试程序开源

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

    使用方法为:

    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 ")
    # 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:])

    MySQL限时解答,24小时内友哥专业解答
    http://www.yougemysqldba.com
    如有进一步需要请联系微信onesoft007
    微博账号@友哥一指
  • 相关阅读:
    【科普】.NET 泛型
    吐槽,青岛科技大学真他妈操蛋
    c# 数组和集合精讲
    c# System.Text.Json 精讲
    .NET 5的System.Text.Json的JsonDocument类讲解
    c#中Array,ArrayList 与List<T>的区别、共性与转换
    代码是怎么运行的?
    .NET6使用DOCFX根据注释自动生成开发文档
    spring通过注解注册bean的方式+spring生命周期
    莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/youge-OneSQL/p/4851610.html
Copyright © 2011-2022 走看看