mirror of https://github.com/dnomd343/ProxyC
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							55 lines
						
					
					
						
							1.6 KiB
						
					
					
				
								#!/usr/bin/python
							 | 
						|
								# -*- coding:utf-8 -*-
							 | 
						|
								
							 | 
						|
								import sys
							 | 
						|
								import time
							 | 
						|
								import subprocess
							 | 
						|
								
							 | 
						|
								import test as Tester
							 | 
						|
								import ProxyBuilder as Builder
							 | 
						|
								import ProxyChecker as Checker
							 | 
						|
								
							 | 
						|
								defaultPort = 10808
							 | 
						|
								defaultPasswd = 'dnomd343'
							 | 
						|
								
							 | 
						|
								def startTest(testList):
							 | 
						|
								    for field in testList:
							 | 
						|
								        serverProcess = subprocess.Popen(
							 | 
						|
								            field['serverCommand'],
							 | 
						|
								            stdout = subprocess.DEVNULL,
							 | 
						|
								            stderr = subprocess.DEVNULL)
							 | 
						|
								        time.sleep(0.1) # 等待进程启动
							 | 
						|
								        if serverProcess.poll() != None: # 服务端启动失败
							 | 
						|
								            print("server unexpected exit")
							 | 
						|
								            continue
							 | 
						|
								        print(field['caption'] + ' => ', end = '')
							 | 
						|
								        status, client = Builder.build(field['proxyInfo'], '/tmp/ProxyC')
							 | 
						|
								        time.sleep(0.5) # 等待初始化完成
							 | 
						|
								        if Builder.check(client) != True:
							 | 
						|
								            print("client unexpected exit") # 客户端启动失败
							 | 
						|
								        else:
							 | 
						|
								            status, delay = Checker.httpPing(client['port'])
							 | 
						|
								            if status == True:
							 | 
						|
								                print(format(delay, '.2f') + 'ms')
							 | 
						|
								            else:
							 | 
						|
								                print(delay)
							 | 
						|
								            Builder.destroy(client) # 关闭客户端
							 | 
						|
								            time.sleep(0.1)
							 | 
						|
								        serverProcess.terminate() # 关闭服务端
							 | 
						|
								        time.sleep(0.1)
							 | 
						|
								        print()
							 | 
						|
								
							 | 
						|
								if len(sys.argv) <= 1:
							 | 
						|
								    print("no param")
							 | 
						|
								    sys.exit(0)
							 | 
						|
								
							 | 
						|
								testName = sys.argv[1]
							 | 
						|
								if testName == 'ss':
							 | 
						|
								    testList = Tester.Shadowsocks(defaultPort, defaultPasswd)
							 | 
						|
								elif testName == 'ssr':
							 | 
						|
								    testList = Tester.ShadowsocksR(defaultPort, defaultPasswd)
							 | 
						|
								else:
							 | 
						|
								    print("unknown test name")
							 | 
						|
								    sys.exit(1)
							 | 
						|
								
							 | 
						|
								startTest(testList)
							 | 
						|
								
							 |