내가 리눅스 우분투 트래픽 발생기를 할 파이썬 프로그램을 사용하고 코드를 아래와 같이 :sendto를() 파이썬
이import socket, sys
host = sys.argv[1] #Server IP Address
textport = sys.argv[2] #Server Binding Port
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #socket
try:
port = int(textport)
except ValueError:
port = socket.getservbyname(textport, 'udp')
while 1:
try:
data = open('auth3.log')#read file
for each_line in data: #each rows
try:
(role,line_spoken) = each_line.split(': ',1)#split two parts
role = role.strip()
s.sendto(role, (host, port))
print('Send: ' + str(role) + "\n")
except:
pass
except IOError as err:
print('file isn\'t exist!!~'+str(err))
finally:
if 'data' in locals(): #If data have no object, Don't use data to close!!~
data.close()
print "\n"
auth3.log의 크기는 약 1.8M이다.
대상 서버에 데이터를 보내면 OID가 ''ifInOctets ''인 snmp를 사용하여 교통 정보를 가져옵니다.
하지만 트래픽이 'Kbit의'단위로 계산 약 128
가 어떻게 1Gbits 최대 대역폭을 채우기 위해이 프로그램을 사용할 수있다? (즉, 난을 작성하려면 대역폭)
도움 주셔서 감사합니다.
고마워, '여러 개의 프로세스를 동시에 실행'하는 방법은이 프로그램에서 다중 스레드 처리가 필요한 방식입니까? – waynner
@WayneHong 나는 전체 프로그램의 인스턴스를 두 개 이상 시작할 수 있음을 의미했습니다. 이 버전의 대역폭 사용량을 측정 했습니까? – user4815162342
그래서 클래스의 객체 인 둘 이상의 인스턴스를 생성하려면 객체 지향 프로그래밍을 사용해야합니까? 대역폭은 Netperf에서 테스트 한 약 600Mbits입니다. – waynner