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

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

?? udp.cpp

?? 基于ARM9(Wince)的網絡音視頻通信
?? CPP
字號:
// UDP_CE.cpp: implementation of the CUDP_CE class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "UDP.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CUDP_CE::CUDP_CE()
{
	
}

CUDP_CE::~CUDP_CE()
{
	
}


/*
*函數介紹:打開UDP通訊端口
*入口參數:pWnd: 指定父窗體指針 
           localPort: 指定遠程UDP端口
           romoteHost:指定遠程IP地址
           remotePort:指定遠程UDP端口
*出口參數:(無)
*返回值:1代表成功;-1,-2,-3等都代表失敗
*/
DWORD CUDP_CE::Open(CWnd* pWnd,int localPort,LPCTSTR remoteHost,int remotePort)
{
	
	WSADATA wsa;
	
	m_pOwnerWnd = pWnd;
	
	//加載winsock動態鏈接庫
	if (WSAStartup(MAKEWORD(1,1),&wsa) != 0)
	{
		return -1;//代表失敗
	}
	
	//創建UDP套接字
	m_UDPSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
	if (m_UDPSocket == INVALID_SOCKET)
	{
		return -2;
	}
	
	SOCKADDR_IN localAddr;
	localAddr.sin_family = AF_INET;
	localAddr.sin_port = htons(localPort);
	localAddr.sin_addr.s_addr=INADDR_ANY;
	
	//綁定地址
	if(bind(m_UDPSocket,(sockaddr*)&localAddr,sizeof(localAddr))!=0)
	{
		return -3;
	}
	
	
	//設置非堵塞通訊
	DWORD ul= 1;
	ioctlsocket(m_UDPSocket,FIONBIO,&ul);

	//創建一個線程退出事件
	m_ExitThreadEvent	= CreateEvent(NULL,TRUE,FALSE,NULL);
	
	//創建通訊線程
	AfxBeginThread(RecvThread,this);
	
	m_RemoteAddr.sin_family = AF_INET;
	m_RemoteAddr.sin_port = htons(remotePort);
	//此處要將雙字節轉換成單字節
	char ansiRemoteHost[255];
	ZeroMemory(ansiRemoteHost,255);
	WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,remoteHost,wcslen(remoteHost)
		,ansiRemoteHost,wcslen(remoteHost),NULL,NULL);
	m_RemoteAddr.sin_addr.s_addr=inet_addr(ansiRemoteHost);
	return 1;
}

/*
*函數介紹:關閉UDP通訊端口
*入口參數:(無)
*出口參數:(無)
*返 回 值:1代表成功;-1,-2等都代表失敗
*/
DWORD CUDP_CE::Close(void)
{
	//設置通訊線程退出事件,通知線程退出
	SetEvent(m_ExitThreadEvent);
	Sleep(2000);
	//關閉線程句柄
	CloseHandle(m_ExitThreadEvent);
	//關閉socket
	if (closesocket(m_UDPSocket) == SOCKET_ERROR)
	{
		return -1;
	}
	
	//釋放socket資源
	if (WSACleanup() == SOCKET_ERROR)
	{
		return -2;
	}
	return 1;
}

/*
*函數介紹:發送數據
*入口參數:dataPriority: 數據優先級 
           dataType: 數據類型
           buf:緩沖區數據
           len:緩沖數據長度
*出口參數:(無)
*返回值:發送成功代表實際發送的字節數,否則返回-1
*/
bool CUDP_CE::SendData(const char *buf, int len)
{
	int nBytes = 0;
	int nErrorCode;
	nBytes = sendto(m_UDPSocket,buf,len,0,(sockaddr*)&m_RemoteAddr,sizeof(m_RemoteAddr));		

	return true;
}


/*
*函數介紹:接收線程函數
*入口參數:lparam : 指傳進線程的參數
*出口參數:(無)
*返 回 值:無意義。
*/

#define recv_size 1024*20//如果是WIN32,大

#if defined(_WIN32_WCE)//如果是WINCE
#define recv_size 1024//小
#endif

UINT CUDP_CE::RecvThread(LPVOID lparam)
{
	CUDP_CE *pSocket;
	pSocket = (CUDP_CE*)lparam;
	fd_set fdRead;
	int ret;
	TIMEVAL	aTime;
	char * recvBuf=NULL;
	aTime.tv_sec = 1;
	aTime.tv_usec = 0;
	SOCKADDR_IN tmpAddr;
	int tmpRecvLen;
	int recvLen;
	unsigned long recvBufLen;
	int iErrorCode;
	
	char * recvedBuf = NULL;
	int recvedBufLen;

	while (TRUE)
	{		
        //收到退出事件,結束線程
		if (WaitForSingleObject(pSocket->m_ExitThreadEvent,0) == WAIT_OBJECT_0)
		{
			break;
		}

		//將set初始化空集合
		FD_ZERO(&fdRead);
		
		//將pSocket->m_UDPSocket套接字添加到集合中
		FD_SET(pSocket->m_UDPSocket,&fdRead);
		
		//調用select函數,判斷套接字I/O狀態
		ret = select(0,&fdRead,NULL,NULL,&aTime);
		
		if (ret == SOCKET_ERROR)
			break;

		if (ret > 0)
		{
			if (FD_ISSET(pSocket->m_UDPSocket,&fdRead))
			{
                tmpAddr.sin_family=AF_INET;             
                tmpAddr.sin_port = htons(pSocket->m_RemoteAddr.sin_port);
				tmpAddr.sin_addr.s_addr =INADDR_ANY;
                tmpRecvLen = sizeof(tmpAddr);
				
				ioctlsocket(pSocket->m_UDPSocket,FIONREAD,&recvBufLen);
				if (recvBufLen <= 0)
					return 0;

				recvBuf = new char[recv_size];
				recvedBuf = new char[recv_size];
				ZeroMemory(recvBuf,recv_size);
				ZeroMemory(recvedBuf,recv_size);

				recvLen = recvfrom(pSocket->m_UDPSocket,recvBuf, (int)recvBufLen,0,(SOCKADDR*)&tmpAddr,&tmpRecvLen);

				
/*				if (recvLen == SOCKET_ERROR)//即使recvLen = SOCKET_ERROR,但收到的數據依然有效
					break;
				
				else if (recvLen == 0)
					break;
				 
				else
				{
*/				//此處添加解析程序,將接收到的數據解析后,



					//測試收到的數據大小
				if(recvBufLen>1)
					pSocket->m_OnUdpRecv(pSocket->m_pOwnerWnd,recvBuf,recvBufLen,(SOCKADDR*)&tmpAddr);
				delete []recvBuf;
				recvBuf = NULL;
				delete []recvedBuf;
				recvedBuf = NULL;
				//}

				recvBufLen = 0;
				ioctlsocket(pSocket->m_UDPSocket,FIONREAD,&recvBufLen);
				
			}
		}
	}
	return 0;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一卡二卡三卡| 亚洲国产成人va在线观看天堂| 国产精品成人一区二区艾草 | 91丨porny丨首页| 欧美丰满高潮xxxx喷水动漫| 欧美激情中文字幕| 日韩有码一区二区三区| 色综合久久久久综合体| 久久久久免费观看| 奇米精品一区二区三区在线观看一| 国产精品夜夜爽| 日韩你懂的在线观看| 亚洲九九爱视频| 99精品欧美一区二区三区综合在线| 久久综合精品国产一区二区三区| 亚洲成人免费电影| 色婷婷亚洲综合| 国产精品免费久久久久| 韩国v欧美v日本v亚洲v| 欧美理论在线播放| 亚洲电影你懂得| 欧美在线制服丝袜| 亚洲一区中文日韩| 欧洲一区二区av| 亚洲国产精品久久艾草纯爱| 99久久精品国产一区| 国产精品乱码久久久久久| 国内成人精品2018免费看| 欧美一区欧美二区| 奇米影视一区二区三区小说| 欧美一区二区大片| 日韩黄色在线观看| 日韩精品一区国产麻豆| 老司机精品视频线观看86| 777奇米四色成人影色区| 日韩影院精彩在线| 日韩欧美区一区二| 国产精品亚洲一区二区三区在线 | 日韩高清在线观看| 91精品国产色综合久久| 久久电影国产免费久久电影 | 国产精品久久毛片a| 成人免费高清视频| 国产精品欧美综合在线| 91同城在线观看| 依依成人精品视频| 欧美日韩一本到| 日精品一区二区三区| 日韩小视频在线观看专区| 日本免费新一区视频| 在线播放中文字幕一区| 日韩影院免费视频| 欧美在线|欧美| 亚洲成av人片在线| 91麻豆精品国产自产在线观看一区| 亚洲一级不卡视频| 91麻豆精品国产自产在线| 麻豆91在线看| 久久网站最新地址| 国产成人h网站| 亚洲精品国产品国语在线app| 一本到一区二区三区| 中文一区二区在线观看| 国产91露脸合集magnet| 久久精品欧美一区二区三区不卡| 国产一区二区三区综合| 精品国产91久久久久久久妲己 | 中文字幕第一区第二区| 欧美日韩久久一区二区| 老司机午夜精品99久久| 国产精品网站一区| 欧美亚洲国产一区二区三区| 免费在线观看日韩欧美| 欧美极品aⅴ影院| 欧美午夜精品一区| 韩国女主播成人在线| 久久女同互慰一区二区三区| 色婷婷av一区二区三区之一色屋| 青青草97国产精品免费观看 | 欧美一区二区三区的| 国产在线一区观看| 日韩毛片精品高清免费| 欧美日韩不卡在线| 激情伊人五月天久久综合| 国产精品免费视频网站| 91精品欧美综合在线观看最新| 国产suv一区二区三区88区| 亚洲在线中文字幕| 久久亚洲欧美国产精品乐播| 色综合咪咪久久| 国产激情一区二区三区| 亚洲地区一二三色| 中文字幕欧美三区| 91麻豆精品国产91久久久更新时间| 精品一区二区三区免费毛片爱| 国产无人区一区二区三区| 日韩欧美激情四射| 91成人在线免费观看| 国产美女精品一区二区三区| 亚洲一区二区三区在线播放| 国产欧美一区二区精品久导航| 欧美视频一区二区三区| 成人久久18免费网站麻豆 | 国产精品久久久久久亚洲伦| 欧美精品18+| 色综合久久综合| 国产91丝袜在线播放0| 日本不卡视频在线| 欧美aaaaaa午夜精品| 一级日本不卡的影视| 国产精品理论在线观看| 久久综合一区二区| 日韩欧美国产小视频| 欧美精品777| 欧美日韩一区高清| 91国产丝袜在线播放| 不卡的av电影在线观看| 另类的小说在线视频另类成人小视频在线 | 盗摄精品av一区二区三区| 日本伊人午夜精品| 午夜视频在线观看一区二区三区| 亚洲卡通动漫在线| 椎名由奈av一区二区三区| 日本一区二区成人| 国产欧美一区二区三区在线看蜜臀 | 91网上在线视频| 99久久精品免费精品国产| 成人av午夜影院| 99久久精品免费精品国产| 97久久超碰国产精品| 国产精品系列在线观看| 黄色成人免费在线| 韩国精品在线观看| 国产黄色91视频| 成人动漫视频在线| 99综合影院在线| 色成人在线视频| 在线欧美一区二区| 欧美日韩的一区二区| 欧美片在线播放| 欧美性猛交xxxx黑人交| 欧美一区二区高清| 久久久91精品国产一区二区三区| 久久久久久**毛片大全| 国产精品嫩草99a| 亚洲一线二线三线视频| 午夜精品在线视频一区| 久久国产免费看| 国产二区国产一区在线观看| 成人18视频日本| 91视频观看视频| 91精品国产日韩91久久久久久| 久久综合久久久久88| 中文字幕av一区 二区| 一区二区三区在线免费| 日本三级亚洲精品| 国产aⅴ综合色| 欧美性大战久久久久久久蜜臀| 欧美一区二区在线看| 久久精品男人的天堂| 国产精品国产三级国产普通话99| 日韩高清中文字幕一区| 国产99久久久精品| 欧美群妇大交群的观看方式| 久久综合99re88久久爱| 亚洲欧美视频一区| 欧美aⅴ一区二区三区视频| 成人免费不卡视频| 日韩亚洲欧美综合| 日韩美女久久久| 国产成人自拍在线| 在线播放欧美女士性生活| 久久免费偷拍视频| 婷婷国产v国产偷v亚洲高清| 国产精品羞羞答答xxdd| 欧美三级电影在线观看| 国产日韩欧美精品在线| 水蜜桃久久夜色精品一区的特点| 国产福利91精品一区二区三区| 92国产精品观看| 久久综合久久综合久久| 香蕉久久一区二区不卡无毒影院| 成人一级片网址| 日韩视频在线你懂得| ㊣最新国产の精品bt伙计久久| 秋霞午夜av一区二区三区| 91网站最新网址| 日本一区二区三区在线观看| 青青草成人在线观看| 大陆成人av片| 久久久久久久免费视频了| 日本不卡一区二区| 99国产欧美久久久精品| 久久久国产综合精品女国产盗摄| 免费人成精品欧美精品| 欧美怡红院视频| 亚洲男人的天堂av| 成人免费看片app下载| 欧美日韩中文国产| 丝袜亚洲另类欧美|