亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? itgsend.cpp

?? D-ITG2.4源代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
				CauchyRV = new Cauchy;
				flows[id].IntArriv = new SumRandom(a * (*CauchyRV) + b);
				h += 3;
				argc -= 3;
				break;
			case 'N':
				if ((argc < 3) || (argv[h + 2] <= 0))	
					ReportErrorAndExit("Protocol Parser",
					    "Invalid pkts per sec", programName, id);
				flows[id].IntArrivDistro = pdNormal;
				b = strtod(argv[h + 1], NULL); 	
				a = strtod(argv[h + 2], NULL); 	
                		delete flows[id].IntArriv;
				NormalRV = new Normal;
				flows[id].IntArriv = new SumRandom(a * (*NormalRV) + b);
				h += 3;
				argc -= 3;
				break;
			case 'O':
				if ((argc < 2) || (strtod(argv[h + 1], NULL) <= 0))	
					ReportErrorAndExit("Protocol Parser",
					    "Invalid pkts per sec", programName, id);
				a = strtod(argv[h + 1], NULL);
				delete flows[id].IntArriv;
				
				PoissonRV = new Poisson(a);
				flows[id].IntArrivDistro = pdPoisson;
				flows[id].IntArriv = new SumRandom(1000.0 / (*PoissonRV));
				h += 2;
				argc -= 2;
				break;
			case 'G':
				if ((argc < 3) || (strtod(argv[h + 1], NULL) <= 0) || (strtod(argv[h + 2], NULL) <= 0))	
					ReportErrorAndExit("Protocol Parser",
					    "Invalid Gamma Distribution parameter values",
					    programName, id);
				a = (Real) strtod(argv[h + 1], NULL);
				b = (Real) strtod(argv[h + 2], NULL);
    				delete flows[id].IntArriv;
				
				GammaRV = new Gamma(a);
				flows[id].IntArrivDistro = pdGamma;
				flows[id].IntArriv = new SumRandom(b * (*GammaRV));
				h += 3;
				argc -= 3;
				break;
			case 'c':
				if ((argc < 2) || (atoi(argv[h + 1]) < 1))
					ReportErrorAndExit("Protocol Parser", "Invalid pkt size",
					    programName, id);
				delete flows[id].PktSize;
				flows[id].PktSizeDistro = pdConstant;
				ConstantRV = new Constant(1);
				flows[id].PktSize = new SumRandom(atoi(argv[h + 1]) * (*ConstantRV));
				h += 2;
				argc -= 2;
				break;
			case 'u':
				if ((argc < 3) || (atoi(argv[h + 1]) < 1)
				    || (atoi(argv[h + 2]) <= atoi(argv[h + 1])))
					ReportErrorAndExit("Protocol Parser", "Invalid pkt size",
					    programName, id);
				delete flows[id].PktSize;
				flows[id].PktSizeDistro = pdUniform;
				b = atoi(argv[h + 1]);
				a = atoi(argv[h + 2]) - b;
				UniformRV = new Uniform;
				flows[id].PktSize = new SumRandom(a * (*UniformRV) + b);
				argc -= 3;
				h += 3;
				break;
			case 'e':
				if ((argc < 2) || (atoi(argv[h + 1]) < 1))
					ReportErrorAndExit("Protocol Parser", "Invalid pkt size",
					    programName, id);
				delete flows[id].PktSize;
				flows[id].PktSizeDistro = pdExponential;
				ExponentialRV = new Exponential;
				flows[id].PktSize = new SumRandom(atoi(argv[h + 1]) * (*ExponentialRV));
				h += 2;
				argc -= 2;
				break;
			case 'v':
				if ((argc < 3) || (strtod(argv[h + 2], NULL) <= 0))	
					ReportErrorAndExit("Protocol Parser",
					    "Invalid Pareto Distribution parameter values",
					    programName, id);
				a = (Real) strtod(argv[h + 1], NULL);
				b = (Real) strtod(argv[h + 2], NULL);
				delete flows[id].PktSize;
				ParetoRV = new Pareto(a);
				flows[id].PktSizeDistro = pdPareto;
				flows[id].PktSize = new SumRandom(b * (*ParetoRV));
				argc -= 3;
				h += 3;
				break;
			case 'y':
				if ((argc < 3) || (atoi(argv[h + 2]) <= 0))	
					ReportErrorAndExit("Protocol Parser",
					    "Invalid pkts per sec", programName, id);
				delete flows[id].PktSize;
				flows[id].PktSizeDistro = pdCauchy;
				b = (Real) atoi(argv[h + 1]);	
				a = (Real) atoi(argv[h + 2]);	
				CauchyRV = new Cauchy;
				flows[id].PktSize = new SumRandom(a * (*CauchyRV) + b);
				h += 3;
				argc -= 3;
				break;
			case 'n':
				if ((argc < 3) || (argv[h + 2] <= 0))	
					ReportErrorAndExit("Protocol Parser", "Invalid pkt size",
					    programName, id);
				delete flows[id].PktSize;
				flows[id].PktSizeDistro = pdNormal;
				b = (Real) atoi(argv[h + 1]);	
				a = (Real) atoi(argv[h + 2]);	
				NormalRV = new Normal;
				flows[id].PktSize = new SumRandom(a * (*NormalRV) + b);
				h += 3;
				argc -= 3;
				break;
			case 'o':
				if ((argc < 2) || (atoi(argv[h + 1]) < 0))	
					ReportErrorAndExit("Protocol Parser", "Invalid pkt size",
					    programName, id);
				a = atoi(argv[h + 1]);
				delete flows[id].PktSize;
				
				PoissonRV = new Poisson(a);
				flows[id].PktSizeDistro = pdPoisson;
				flows[id].PktSize = new SumRandom(1 * (*PoissonRV));
				h += 2;
				argc -= 2;
				break;
			case 'g':
				if ((argc < 3) || (strtod(argv[h + 2], NULL) <= 0))
					ReportErrorAndExit("Protocol Parser",
					    "Invalid Gamma Distribution parameter values",
					    programName, id);
				delete flows[id].PktSize;
				a = (Real) strtod(argv[h + 1], NULL);
				b = (Real) strtod(argv[h + 2], NULL);
				
				GammaRV = new Gamma(a);
				flows[id].PktSizeDistro = pdGamma;
				flows[id].PktSize = new SumRandom(b * (*GammaRV));
				h += 3;
				argc -= 3;
				break;
			case 'D':
				
				
#ifdef DEBUG
				printf("Nagle algorithm disabled\n");
#endif
				flows[id].Nagle=false;
				h += 1;
				argc -= 1;
				break;
#ifdef WIN32				
			case 'P':
				
				
				if (SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS) == 0){
				        printf("Error - Impossible set priority class - %d \n", GetLastError());
			    }
#ifdef DEBUG
				printf(" Enabled thread priority \n");
#endif
				setPriority = true;
				h += 1;
				argc -= 1;
				break;
#endif
			default:
				char temp[sizeof("What is  ?") + sizeof(argv[h])];
				ReportErrorAndExit("General parser", strcat(strcat(strcpy(temp,
						"What is "), argv[h]), " ?"), programName, id);
				break;
			} 
		} else {
			flows[id].l7Proto = findL7Proto(argv[h]);
			switch (flows[id].l7Proto) {
			case L7_PROTO_TELNET:

				telnetParser(&flows[id].IntArriv, &flows[id].PktSize, flows[id].IntArrivDistro, flows[id].PktSizeDistro);
				flows[id].l4Proto = L4_PROTO_TCP;
				h++;
				argc--;
				break;
			case L7_PROTO_VOIP:

				voIPParser(h, argv, argc, flows[id].id, &flows[id].IntArriv, &flows[id].PktSize,
				    flows[id].IntArrivDistro, flows[id].PktSizeDistro);
				flows[id].l4Proto = L4_PROTO_UDP;
				break;
			case L7_PROTO_DNS:

				dnsParser(&flows[id].IntArriv, &flows[id].PktSize, flows[id].IntArrivDistro, flows[id].PktSizeDistro);
				h++;
				argc--;
				break;
			case LX_PROTO_NONE:
				char temp[sizeof("What is  ?") + sizeof(argv[h])];
				ReportErrorAndExit("General parser", strcat(strcat(strcpy(temp,
						"What is "), argv[h]), " ?"), programName, id);
				break;
			} 
		} 
	} 
#ifdef DEBUG
	printf("Terminate Parser flow %d\n",id);
#endif

#ifdef WIN32
	if ((flows[id].l4Proto == L4_PROTO_ICMP) && (flows[id].DestHost->ai_family == PF_INET6)) {
		printf("Error: traffic ICMP with protocol IPv6 is not supported \n");
		memClean();
	exit(1);
	}
#endif
	
	if (seed == 0.0) {
#ifdef WIN32
		_ftime(&tstruct);
		seed = 0.49 * sin(tstruct.millitm) + 0.50;	
#endif
#ifdef LINUX_OS
		struct timeval tv;	
		gettimeofday(&tv, NULL);
		seed = 0.49 * sin(tv.tv_usec) + 0.50;	
#endif
	}

	
	flows[id].IntArriv->Set(seed);
	flows[id].PktSize->Set(seed);


	
	if (createNewPipe(flows[id].parserPipe) < 0) {
		printf("Error in flowParser() trying to create a new pipe. [flow %d]\n", id);
		exitThread();
	}

	
	
	if (Delay) {
#ifdef LINUX_OS
		timeout.tv_sec = Delay / 1000;
		timeout.tv_usec = (Delay % 1000) * 1000;
		long int result;
		do
			result = (long int) (select(0, NULL, NULL, NULL, &timeout));
		while (result == -1L && errno == EINTR);
#endif
#ifdef WIN32
		Sleep(Delay);
#endif
	}

	
	
	
 	
	int rit = identifySignalManager(id, &chanId, flows[id].DestHost);
	if (rit == -1) {
		printf("Error into function identifySignalManager() n");
		exitThread();
	}

	if ((namelogReceiver == 1) || (logServer == 1)) {
		if (signalChannels[chanId].errorLog == true){
			printf("Error log file specified is already open \n");
  			isChannelClosable(chanId);
			if (multiFlows)
	   			exitThread();
			else return 0;
		}
	}


	
	msg.code = MSG_SM_NEWFLOW;
	msg.flowId = id;
	if (sendPipeMsg(signalChannels[chanId].pipe, &msg) < 0) {
		perror("flowParser sending msg");
		exitThread();
	}

	
	if (recvPipeMsg(flows[id].parserPipe, &msg) < 0) {
		perror("flowParser receiving msg");
		exitThread();
	}

#ifdef DEBUG
	printf("msg received from signal manager %d\n",msg.code);
#endif

	switch (msg.code) {
	case MSG_FP_END:
		break;
	case MSG_FP_ERR1:
		printf("Error at Receiver side \n");
		break;
	case MSG_FP_ERR2:
		printf("Error - FlowSender interrupted by an error\n");
		break;
	default:
		printf("Error undefined message received from signal manager\n");
		break;
	}

	

	if (managerMode) {
		
		int length = strlen(ManagerMsg);
		memmove(ManagerMsg + 2 * sizeof(int), ManagerMsg, length);
		((int *) ManagerMsg)[0] = MNG_FLOWEND;	
		((int *) ManagerMsg)[1] = length;	
		sendto(managerSock, ManagerMsg, length + sizeof(int) * 2, 0, (struct sockaddr *) &ManagerIP,
		    ManagerIPslen);
#ifdef DEBUG
		printf("Notify ITGManager about the end of the generation \n");
#endif

	}

	
   	closePipe(flows[id].parserPipe);


    

	if (multiFlows)
	   exitThread();
    return 0;
}

void *signalManager(void *id)
{
	int	chanId, sock, size;
	BYTE	type;
	unsigned int	flowId;
	char	buffer[4];
	struct pipeMsg msg;
#ifdef LINUX_OS
	int fd, maxfd;
	fd_set	rset;
#endif
#ifdef WIN32
	HANDLE fd, namedPipe;
	HANDLE	events[2];
	DWORD available = 0;
	DWORD waited;
	unsigned long pending;
#endif

#ifdef DEBUG
	printf("signalManager() started\n");
#endif

	
	chanId = *(int *)id;
	sock = signalChannels[chanId].socket;
	fd = signalChannels[chanId].pipe[0];
#ifdef WIN32
	events[0] = WSACreateEvent();
	WSAEventSelect(sock, events[0], FD_READ);
	events[1] = signalChannels[chanId].pipe[1];
	namedPipe = signalChannels[chanId].pipe[2];
#endif

#ifdef LINUX_OS
	maxfd = max(fd, sock) + 1;
	FD_ZERO(&rset);
#endif
    
	
	for (;;) {
		
#ifdef LINUX_OS
		FD_SET(sock, &rset);
		FD_SET(fd, &rset);
		if (select(maxfd, &rset, NULL, NULL, NULL) == -1) {
			if (errno == EINTR)
				continue;
			printf("error during select in signalManager %d\n", chanId);
			exitThread();
		}
		
		if (FD_ISSET(sock, &rset)) {
#endif

#ifdef WIN32
#ifdef DEBUG
		printf("before waitformultiple...\n");
#endif
		waited = WaitForMultipleObjects(2, (const HANDLE *)events, FALSE, INFINITE);
#ifdef DEBUG
		printf("out of waitformultiple...\n");
#endif
		
		
		ResetEvent(events[0]);
		
		pending = 0;
		ioctlsocket(sock, FIONREAD, &pending);
#ifdef DEBUG
		printf("pending: %d\n", pending);
#endif
		while (pending > 0) {
#endif
			

			
			size = recv(sock, (char *) &type, sizeof(type), 0);
#ifdef DEBUG
			printf("received type %d on socket\n", type);
#endif
			switch (type) {
			case TSP_ACK_CLOSED_FLOW:

				
				recv(sock, (char *) buffer, sizeof(buffer), 0);
				flowId = *(unsigned int *) buffer;
#ifdef DEBUG
				printf("received ack closed flow %d\n", flowId);
#endif
				

				
				if ( isChannelClosable(chanId))  {
					
					msg.code = MSG_FP_END;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品三级麻豆| 国产精品原创巨作av| 韩国精品久久久| 欧美主播一区二区三区美女| 欧美成人a∨高清免费观看| 亚洲日本一区二区| 国产精品一区在线观看你懂的| 日本精品视频一区二区三区| 久久综合九色综合久久久精品综合| 亚洲福利一区二区| 不卡欧美aaaaa| 久久青草国产手机看片福利盒子 | 久久在线免费观看| 偷拍日韩校园综合在线| 91麻豆产精品久久久久久| 久久综合九色综合欧美98 | 91精品婷婷国产综合久久| 亚洲国产精品成人综合| 奇米一区二区三区av| 欧美羞羞免费网站| 亚洲人精品一区| 国产suv精品一区二区883| 26uuu精品一区二区三区四区在线| 午夜久久电影网| 色屁屁一区二区| 国产精品盗摄一区二区三区| 国产精品99久久久久久似苏梦涵| 日韩一区二区免费电影| 天天免费综合色| 91精品在线观看入口| 一区二区三区.www| 色综合久久天天| 亚洲欧美一区二区三区久本道91| 成人精品视频.| 中文字幕在线不卡国产视频| 成人午夜又粗又硬又大| 中文字幕一区二区三区在线观看 | 久久久久97国产精华液好用吗| 狠狠色伊人亚洲综合成人| 91精品国产欧美一区二区18| 午夜激情综合网| 欧美一区二区三区免费视频| 久久99国产精品久久99| xnxx国产精品| 成人黄色国产精品网站大全在线免费观看| 精品处破学生在线二十三| 久久精工是国产品牌吗| 亚洲精品在线免费播放| 国产成人综合视频| 亚洲欧美偷拍另类a∨色屁股| 99riav一区二区三区| 亚洲高清视频中文字幕| 日韩一区二区三| 成人激情图片网| 亚洲国产精品久久人人爱蜜臀 | 日韩高清不卡一区| 欧美mv日韩mv亚洲| 成人av资源网站| 亚洲成a天堂v人片| 2021中文字幕一区亚洲| 91亚洲资源网| 卡一卡二国产精品| 国产精品家庭影院| 欧美美女网站色| 成人国产亚洲欧美成人综合网 | 狠狠色狠狠色综合系列| 中文字幕日韩av资源站| 欧美夫妻性生活| 国产福利精品一区| 亚洲v精品v日韩v欧美v专区| 久久天天做天天爱综合色| 色噜噜狠狠一区二区三区果冻| 免费在线视频一区| 国产精品国产自产拍高清av| 欧美三级乱人伦电影| 国产成人免费视频| 五月天视频一区| 国产精品热久久久久夜色精品三区| 欧洲生活片亚洲生活在线观看| 九色porny丨国产精品| 一区二区三区色| 国产亚洲精品久| 日韩丝袜情趣美女图片| 91视频你懂的| 丁香五精品蜜臀久久久久99网站| 青青草原综合久久大伊人精品优势| 国产精品理论在线观看| 欧美mv和日韩mv国产网站| 欧洲亚洲国产日韩| 99综合影院在线| 国产精品77777竹菊影视小说| 偷拍一区二区三区| 亚洲午夜成aⅴ人片| 国产精品美女久久久久久| 欧美一卡二卡三卡| 欧美日韩国产片| 99国产精品久久久久久久久久| 国内外精品视频| 免费高清视频精品| 日本 国产 欧美色综合| 午夜精品福利一区二区三区av| 亚洲美女免费在线| 18成人在线观看| 国产精品国产三级国产普通话蜜臀 | 成人sese在线| 韩国女主播成人在线| 免费久久99精品国产| 日韩中文字幕区一区有砖一区 | 国产成人福利片| 精品午夜一区二区三区在线观看| 污片在线观看一区二区| 亚洲综合精品久久| 亚洲中国最大av网站| 一区二区三区在线影院| 亚洲精品高清视频在线观看| 国产精品福利一区| 亚洲男人的天堂网| 亚洲一区免费观看| 亚洲高清不卡在线| 免费精品视频最新在线| 久久激情五月婷婷| 国产综合一区二区| 国产成人av影院| av亚洲精华国产精华精| 色综合久久久久| 欧美日韩三级视频| 欧美一二三区在线观看| 欧美成人a∨高清免费观看| 久久精品无码一区二区三区| 国产精品欧美一区喷水| 综合在线观看色| 亚洲午夜成aⅴ人片| 久久精品国产999大香线蕉| 麻豆91免费观看| 国产91丝袜在线播放| 99riav久久精品riav| 欧美人伦禁忌dvd放荡欲情| 欧美一级二级三级蜜桃| 久久久精品免费网站| 亚洲三级视频在线观看| 午夜视黄欧洲亚洲| 国产精品综合视频| 91在线看国产| 欧美一区二区三区喷汁尤物| 国产偷国产偷亚洲高清人白洁| 日韩一区在线看| 男女性色大片免费观看一区二区 | 国产精品久久久久7777按摩| 亚洲午夜久久久久久久久电影网| 麻豆精品久久久| 成人97人人超碰人人99| 欧美日韩精品福利| 国产日韩亚洲欧美综合| 亚洲国产精品一区二区www| 国产一区二区成人久久免费影院 | 亚洲乱码中文字幕| 久久99精品国产91久久来源| av亚洲精华国产精华精华| 日韩一级黄色大片| 亚洲欧洲韩国日本视频| 久久成人久久鬼色| 色综合久久99| 国产欧美一区二区精品性| 亚洲一区二区成人在线观看| 国产精品一区二区果冻传媒| 欧美色网一区二区| 久久精品水蜜桃av综合天堂| 亚洲一区二区精品视频| 东方aⅴ免费观看久久av| 91精品国产高清一区二区三区蜜臀| 国产精品久久久久久久久免费樱桃| 青青草国产成人av片免费| av男人天堂一区| 久久网站热最新地址| 视频一区在线播放| 日本久久电影网| 国产精品卡一卡二| 国产成人av电影在线观看| 欧美一级免费大片| 亚洲国产成人高清精品| av一区二区三区黑人| 久久精品人人爽人人爽| 美女高潮久久久| 这里只有精品电影| 亚洲另类中文字| www.亚洲色图.com| 欧美激情在线看| 国产一区高清在线| 欧美大片在线观看一区| 日本va欧美va欧美va精品| 69堂国产成人免费视频| 一区二区三区欧美亚洲| 99久久精品费精品国产一区二区| 中文字幕精品三区| 国产99久久久国产精品潘金网站| 久久久蜜桃精品| 国产乱人伦精品一区二区在线观看 | 欧美一区二区三区在线看| 天堂av在线一区| 欧美一区二区网站|