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

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

?? netagentthread.cpp

?? 網絡轉發器 用于運行在可以跨兩個網段的機器上用來作為一個TCP應用層的一個橋
?? CPP
字號:
#include "stdafx.h"
#include "envInit.h"
#include "spIPCComm.h"
using namespace commIPC;
//
SOCKET InitNetworkListen(LPCSTR pszAddr,int iPort)
{
	//準備監聽
	int iLocalPort =iPort;
	SOCKET sockListen = SPCreateListenSocket(pszAddr,iLocalPort);
	if(sockListen == SOCKET_ERROR)
	{
		GetConsoleWnd(1)->printf("[error] init network listen socketed");
		return SOCKET_ERROR;
	}
	return sockListen;
}

//網絡監聽線程
DWORD NetworkListenThread(CAgentIni *pIni)
{
	SOCKET sockListen = InitNetworkListen(NULL,GetAgentIni()->m_iLocalPort);
	if(sockListen == SOCKET_ERROR)
		return 1;
	GetConsoleWnd(0)->printf("[info] 開始等待連接");
	while(1)
	{//開始接受連接
		struct sockaddr adr;
		int iAdrSize= sizeof(adr);
		SOCKET sockClient = accept(sockListen,&adr,&iAdrSize);
		if(sockClient>0)
		{//連接成功后產生處理線程序
			LPCSTR pszRmtAddr = inet_ntoa(((sockaddr_in*)&adr)->sin_addr);
			char szTemp[200];
			sprintf(szTemp,"[info] client connected from %s:%d@%d",pszRmtAddr,ntohs(((sockaddr_in*)&adr)->sin_port),sockClient);
			GetConsoleWnd(0)->printf(szTemp);

			DWORD dwSeqHandle = GetConnectionIDSeq()->GetNext();
			DWORD dwID;
			char szProlog[40];
			sprintf(szProlog,"%s_netsockcontain",GetAgentName());
			CNetSocketContainer *pnsCon= new CNetSocketContainer(sockClient,NULL,(UINT)dwSeqHandle,szProlog);
			HANDLE hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ClientAndServerDataExchange,(LPVOID)pnsCon,0,&dwID);
			//
			CloseHandle(hThread);
		}
	}
	return 0;
}
void _append_to_file(LPCSTR pszFName,void* pD,int iL)
{//輸出到文件
	if(GetAgentIni()->m_iDebugOut != 1)
		return;
	if(iL <=0)
		return;
	FILE* pFile=fopen(pszFName,"ab");
	if(pFile)
	{
		int iWrote = fwrite(pD,iL,1,pFile);
		fclose(pFile);
		GetConsoleWnd(0)->printf("[file] append to %s file write item=%d bytes=%d",pszFName,iWrote,iWrote*iL);
	}
	else
	{
		GetConsoleWnd(1)->printf("[error] append to %s file error",pszFName);
	}
}

DWORD ClientAndServerDataExchange(CNetSocketContainer* pnsContainer)
{//建立到真正服務器間連接,然后采用輪詢的方式在C、S間轉發數據,每次輪詢延時1S
	pnsContainer->AddRefer();
	SOCKET sockClient = pnsContainer->m_sockClient;
	SOCKET sockServer =SPCreateConnectSocket(GetAgentIni()->m_szServerIP,
												GetAgentIni()->m_iServerPort,
												(GetAgentIni()->m_szLocalIP.GetLength()!=0)?(LPCSTR)GetAgentIni()->m_szLocalIP:NULL);
	if(sockServer != SOCKET_ERROR)
	{
		GetConsoleWnd(0)->printf("[info] Connect to Server OK %s:%d",GetAgentIni()->m_szServerIP,GetAgentIni()->m_iServerPort);
		pnsContainer->m_sockServer = sockServer;
		char szTitleCS[32],szTitleSC[32],szFileCS[256],szFileSC[256];
		sprintf(szTitleCS,"{%s} C->S",pnsContainer->GetContainerName());
		sprintf(szTitleSC,"{%s} S->C",pnsContainer->GetContainerName());
		sprintf(szFileCS,"Data\\%d_%s_client_2_server.txt",GetAgentIni()->m_iCurrentSeq,pnsContainer->GetContainerName());
		sprintf(szFileSC,"Data\\%d_%s_server_2_client.txt",GetAgentIni()->m_iCurrentSeq,pnsContainer->GetContainerName());

		CTCPSocket sClient(pnsContainer->m_sockClient,FALSE);
		CTCPSocket sServer(pnsContainer->m_sockServer,FALSE);

		while(1)
		{
			if(SOCKET_ERROR == RecvAndSendBetween2Hosts(pnsContainer,sClient,sServer,szTitleCS,szFileCS))
			{//從客戶端接收并發送到服務器
				break;
			}
			if(SOCKET_ERROR == RecvAndSendBetween2Hosts(pnsContainer,sServer,sClient,szTitleSC,szFileSC))
			{//從服務器接收并發送到客戶端
				break;
			}
		}
	}
	else
		GetConsoleWnd(1)->printf("[error] Connect to Server error %s:%d",GetAgentIni()->m_szServerIP,GetAgentIni()->m_iServerPort);
	GetConsoleWnd(0)->printf("[info] {%s} Exit",pnsContainer->GetContainerName());
	pnsContainer->CloseAll();
	pnsContainer->ReleaseRefer();
	delete pnsContainer;
	return 0;
}

int RecvAndSendBetween2Hosts(CNetSocketContainer* pnsContainer,CIPCComm &sFrom,CIPCComm &sTo,LPCSTR pszTitle,LPCSTR pszFile)
{//從第一個Socket收數據,發送到第二個Socket
	int iRead=0,iWrote=0;
	//接受數據
	int iRet = sFrom.TestAndRecv(1,pnsContainer->m_iBufferLen,pnsContainer->m_pbBuffer,iRead);
	if(iRet ==SP_ERR_NETWORK || iRet==SP_ERR_GENERAL)
	{
		GetConsoleWnd(1)->printf("[error] %s Receive Error",pszTitle);
		return SOCKET_ERROR;
	}
	if(iRet ==SP_ERR_SUCCESS || iRet==SP_ERR_NOT_FINISH)
	{
		GetConsoleWnd(0)->printf("[info] %s Receive OK length=%d",pszTitle,iRead);
		//記錄數據
		_append_to_file(pszFile,pnsContainer->m_pbBuffer,iRead);
		//轉發數據
		iRet = sTo.Send(iRead,pnsContainer->m_pbBuffer,iWrote);
		if(iRet ==SP_ERR_NETWORK || iRet==SP_ERR_GENERAL)
		{
			GetConsoleWnd(1)->printf("[error] %s Send Error",pszTitle);
			return SOCKET_ERROR;
		}
		GetConsoleWnd(0)->printf("[info] %s Send OK length=%d",pszTitle,iWrote);
		return iWrote;
	}
//	GetConsoleWnd(0)->printf("%s Send OK length=%d",pszTitle,iWrote);
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱子伦一区| 色狠狠av一区二区三区| 精品少妇一区二区三区视频免付费| 亚洲国产sm捆绑调教视频 | 国产精品12区| 欧美激情一区三区| 99re亚洲国产精品| 亚洲国产中文字幕在线视频综合| 7777精品久久久大香线蕉 | 亚洲婷婷在线视频| 欧洲人成人精品| 人禽交欧美网站| 久久久国际精品| 色先锋久久av资源部| 日韩成人一区二区三区在线观看| 欧美刺激午夜性久久久久久久| 粉嫩av一区二区三区| 亚洲永久精品国产| 久久综合99re88久久爱| a在线播放不卡| 丝袜亚洲另类欧美综合| 国产视频视频一区| 欧美三级资源在线| 国产剧情在线观看一区二区| 亚洲精品成人在线| 精品国产91久久久久久久妲己| 成人精品视频一区二区三区| 亚洲一区二区三区四区五区黄| 日韩一区二区免费视频| 97久久超碰精品国产| 日本不卡的三区四区五区| 中文幕一区二区三区久久蜜桃| 欧美日韩国产乱码电影| 国产成人精品综合在线观看| 亚洲不卡av一区二区三区| 国产精品私人自拍| 日韩一区二区三区电影在线观看| 91视频免费播放| 国产伦理精品不卡| 日韩专区在线视频| 一区二区三区在线看| 久久精品一区八戒影视| 7777精品伊人久久久大香线蕉完整版| 丁香婷婷综合五月| 日本sm残虐另类| 亚洲影视资源网| 国产精品视频一二三区 | 欧美三级电影网站| 国产成人福利片| 另类成人小视频在线| 一区二区三区国产精华| 国产精品灌醉下药二区| 国产亚洲欧美日韩俺去了| 1024成人网| 久久久久青草大香线综合精品| 欧美少妇xxx| 99国产精品99久久久久久| 国产在线播放一区三区四| 日本成人在线看| 午夜久久久久久电影| 一区2区3区在线看| 亚洲色图色小说| 中文字幕国产一区二区| 久久这里只有精品6| 精品三级在线观看| 日韩午夜小视频| 欧美一区二区三区在线看| 欧美综合亚洲图片综合区| 91网址在线看| 91免费在线视频观看| 99久久精品国产毛片| 99久久久国产精品免费蜜臀| 成人精品一区二区三区中文字幕| 国产盗摄一区二区| 国产99久久久国产精品| 国产高清精品久久久久| 国产成人午夜精品影院观看视频 | 久久综合狠狠综合久久激情| 日韩精品专区在线影院重磅| 欧美精品精品一区| 欧美一区在线视频| 日韩午夜在线播放| 久久精品一区二区三区四区| 国产欧美一区视频| 综合久久久久久| 亚洲精品老司机| 亚洲制服丝袜在线| 天堂成人免费av电影一区| 日韩国产在线一| 精品一区二区三区av| 国产馆精品极品| 97se亚洲国产综合在线| 在线这里只有精品| 欧美日本在线看| 2欧美一区二区三区在线观看视频| 久久免费午夜影院| 国产精品视频你懂的| 亚洲主播在线播放| 免费成人结看片| 国产精品99久久久久久久女警| av在线播放一区二区三区| 日本电影欧美片| 91精品国产综合久久久久久漫画 | 欧美激情中文字幕| 一区二区三区在线观看国产| 丝袜美腿亚洲色图| 国产69精品久久久久毛片| 91传媒视频在线播放| 日韩一级大片在线| 国产精品久久久99| 日韩国产高清影视| 成人免费毛片片v| 欧美日本视频在线| 久久综合九色欧美综合狠狠| 一区二区三区不卡视频在线观看 | av在线不卡电影| 91精品国产综合久久精品麻豆 | 樱桃国产成人精品视频| 在线免费观看日本欧美| 欧美电影免费观看高清完整版在线 | 亚洲午夜久久久久久久久久久| 久久99国产精品成人| 91亚洲大成网污www| 欧美一区二区三区系列电影| 国产精品欧美经典| 青青草国产精品亚洲专区无| 色综合天天综合网天天看片| 欧美第一区第二区| 亚洲成av人片在www色猫咪| 丁香婷婷综合色啪| 精品剧情在线观看| 亚洲福利视频一区| 波多野结衣亚洲一区| 久久影院电视剧免费观看| 亚洲超碰精品一区二区| 99精品国产99久久久久久白柏| 久久综合成人精品亚洲另类欧美 | 欧美高清精品3d| 国产精品久久夜| 国产一区二区三区在线观看免费 | 三级久久三级久久久| 成人精品电影在线观看| 精品国产人成亚洲区| 天天免费综合色| 色菇凉天天综合网| 亚洲欧洲成人精品av97| 国产成人自拍网| 久久久久久久国产精品影院| 麻豆成人综合网| 欧美精品第1页| 午夜精品久久久久久久| 日本精品一级二级| 亚洲婷婷综合色高清在线| 成人影视亚洲图片在线| 久久免费国产精品| 久久精品国产澳门| 日韩欧美亚洲国产精品字幕久久久| 亚洲一区二区三区自拍| 欧洲人成人精品| 一级日本不卡的影视| 欧美色中文字幕| 亚洲在线成人精品| 欧美日韩和欧美的一区二区| 亚洲一区av在线| 欧美日韩在线观看一区二区 | 日韩一区二区电影网| 亚洲高清三级视频| 欧美日韩国产bt| 日韩激情一区二区| 欧美一区二区视频在线观看2020| 全国精品久久少妇| 精品免费视频.| 国产精品自拍毛片| 国产精品视频九色porn| 99视频在线精品| 亚洲综合无码一区二区| 欧美日韩一区二区欧美激情| 午夜精品免费在线| 91精品国产综合久久精品| 日韩av午夜在线观看| 精品美女被调教视频大全网站| 国产福利一区在线| 综合久久给合久久狠狠狠97色 | 5566中文字幕一区二区电影| 日本特黄久久久高潮| 亚洲精品在线观| 成人国产精品免费观看| 一区二区欧美在线观看| 91精品国产乱| 国产一区三区三区| 亚洲天堂网中文字| 欧美日本一道本| 国产精品白丝jk黑袜喷水| 亚洲天堂福利av| 91精品国产欧美一区二区成人| 极品少妇xxxx精品少妇偷拍| 国产精品国产自产拍在线| 欧美色男人天堂| 国产在线一区二区| 一区二区日韩av|