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

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

?? bvsocket.cpp

?? 利用UDP實現語音全雙工通信&利用winsock2實現IP多播的實例
?? CPP
字號:
// BvSocket.cpp: implementation of the CBvSocket class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Phone.h"
#include "BvSocket.h"

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

#pragma comment(lib, "wsock32")
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBvSocket::CBvSocket()
{

}

CBvSocket::~CBvSocket()
{

}

void CBvSocket::ReportWinsockErr(LPSTR lpszErrorMsg)
{
	char chMsgBuffer[100];

	wsprintf(chMsgBuffer, "\nWinsock error %d: %s\n\n", WSAGetLastError(), lpszErrorMsg);
	MessageBox(NULL,chMsgBuffer,  AfxGetAppName(), MB_OK|MB_ICONSTOP);
	return;   
}

BOOL CBvSocket::Init(WSADATA* wsaData)
{
	if (WSAStartup(WINSOCK_VERSION,wsaData))
	{
		MessageBeep(MB_ICONSTOP);
		MessageBox(NULL,"Winsock could not be initialized!", AfxGetAppName(), MB_OK|MB_ICONSTOP);
	    WSACleanup();
	    return(FALSE);
	}                  
	return TRUE;
}

BOOL CBvSocket::Clean()
{
	int iErrorCode;
	char chMsgBuffer[100];

	if ((iErrorCode = WSACleanup()))
	{
		wsprintf(chMsgBuffer, "Winsock error %d.", iErrorCode);
		MessageBeep(MB_ICONSTOP);
		MessageBox(NULL, chMsgBuffer,  AfxGetAppName(), MB_OK|MB_ICONSTOP);   
		return FALSE;
    }
	return TRUE;
}

BOOL CBvSocket::GetHostName(char *name, int namelen)
//determine if the local machine is on_line!
{
	if (gethostname(name, namelen))
	{
		ReportWinsockErr("\nCould not resolve local host!\nAre you on-line?\n");
		return FALSE;
	}
	return TRUE;
}

BOOL CBvSocket::Create()
//Create the default socket for general use!
{
	m_hSocket=socket(PF_INET, SOCK_STREAM, 0);
	if (m_hSocket == INVALID_SOCKET)
	{
		ReportWinsockErr("Could not create server socket.");
		return FALSE;
	}
	return TRUE;
}

BOOL CBvSocket::Create(int af, int type, int protocol)
//you can create the socket using the socket,there is equal!
{
	m_hSocket=socket(af,type,protocol);
	if (m_hSocket == INVALID_SOCKET)
	{
		ReportWinsockErr("Could not create server socket.");
		return FALSE;
	}
	return TRUE;
}

void CBvSocket::SetAddrIn(const char FAR* ip, unsigned short port)
//you can set you socket address using the doted string format.
{
	m_addrSocket.sin_family=AF_INET;
	m_addrSocket.sin_addr.S_un.S_addr=inet_addr(ip);
	m_addrSocket.sin_port=htons(port);
}

void CBvSocket::SetAddrIn(unsigned short port)
//you can also let the windows to process the ip,if your machine have
//more than one ip.
{
	m_addrSocket.sin_family=AF_INET;
	m_addrSocket.sin_addr.S_un.S_addr=INADDR_ANY;
	m_addrSocket.sin_port=htons(port);
}

BOOL CBvSocket::Bind()
//if you have used SetAddrIn() create the socket address,you can call
//this default bind function to name the unnamed socket address.
{
	if (bind(m_hSocket,(LPSOCKADDR)&m_addrSocket,sizeof(m_addrSocket)) == SOCKET_ERROR)
	{
		ReportWinsockErr("Could not bind server socket.");
		return FALSE;
	 }
	return TRUE;
}

BOOL CBvSocket::Bind(unsigned short port)
//you can also combine setaddrin() and bind() in one function.
{
	SetAddrIn(port);
	return	Bind();
}

BOOL CBvSocket::Bind(const char *ip, unsigned short port)
//you can also combine setaddrin() and bind() in one function.
//see the description of the SetAddrIn(const char *ip, unsigned short port).
{
	SetAddrIn(ip,port);
	return Bind();
}

BOOL CBvSocket::AsyncSelect(HWND hWnd, unsigned int wMsg, long lEvent)
//This function is just to call the WSAAsyncSelect(...)function,
//wMsg is the user defined Message constant,
//for more information, you can look the MSDN,you also can read a example project.
{
	int iErrorCode = WSAAsyncSelect(m_hSocket, hWnd, wMsg,lEvent);
	if (iErrorCode == SOCKET_ERROR) 
	{
		ReportWinsockErr("WSAAsyncSelect failed on server socket.");
		return FALSE;
	}
	return TRUE;
}

BOOL CBvSocket::Listen()
//just the simple call listen
{
	if (listen(m_hSocket, 5) == SOCKET_ERROR)
	{
		ReportWinsockErr("Server socket failed to listen.");
		return FALSE;
	}
	return TRUE;
}

BOOL CBvSocket::Listen(int queue_size)
//you can set the queue size,using this function.
{
	if (listen(m_hSocket, queue_size) == SOCKET_ERROR)
	{
		ReportWinsockErr("Server socket failed to listen.");
		return FALSE;
	}
	return TRUE;
}

BOOL CBvSocket::Listen(int queue_size,HWND hWnd, unsigned int wMsg)
{
	if(!WSAAsyncSelect(m_hSocket,hWnd,wMsg,FD_ACCEPT))
		return FALSE;
	if(!Listen(queue_size))
		return FALSE;
	return TRUE;
}

BOOL CBvSocket::EndListen()
{
	Close();
	return TRUE;
}

BOOL CBvSocket::Close()
{
	return closesocket(m_hSocket);
}


int CBvSocket::Recieve(char *buf, int len, int flags=0)
{
	return recv(m_hSocket,buf,len,flags);
}

int CBvSocket::Send(const char *buf, int len, int flags=0)
{
	return send(m_hSocket,buf,len,flags);
}

int CBvSocket::Connect()
{
	return connect(m_hSocket,(LPSOCKADDR)&m_addrSocket,sizeof(m_addrSocket));
}

int CBvSocket::SetSocketOpt(int optname, const char *optval, 
							int optlen, int level=SOL_SOCKET)
//for more information you can see the msdn.
{
	return setsockopt(m_hSocket,level,optname,optval,optlen);
}


int CBvSocket::GetSocketOpt(int optname, char *optval,
							int *optlen, int level=SOL_SOCKET)
{
	return getsockopt(m_hSocket,level,optname,optval,optlen);
}

SOCKET CBvSocket::Accept(SOCKADDR *addr, int *addrlen)
{
	return accept(m_hSocket,addr,addrlen);
}


int CBvSocket::Connect(const char FAR* ip, unsigned short port)
{
	SetAddrIn(ip,port);
	return Connect();
}

BOOL CBvSocket::SetAddrIn(long ip, unsigned short port)
{
	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合免费观看高清完整版| 日韩视频免费直播| 日本系列欧美系列| 色婷婷亚洲综合| 亚洲美女电影在线| 91国产成人在线| 亚洲午夜精品在线| 在线电影国产精品| 蜜桃视频一区二区| 精品国产亚洲在线| 国产一区二区三区免费| 欧美国产日本视频| 色婷婷精品大视频在线蜜桃视频| 亚洲一区在线观看免费| 欧美精品在欧美一区二区少妇| 天天色图综合网| 欧美成人video| 国产99精品国产| 亚洲理论在线观看| 9191国产精品| 国产精品一区在线| 国产精品国产三级国产aⅴ入口| 99久久婷婷国产综合精品电影| 亚洲一区二区偷拍精品| 日韩一区二区三区av| 国产精品系列在线观看| 亚洲精品视频观看| 日韩一级免费观看| 成人综合在线网站| 香蕉久久夜色精品国产使用方法 | 国产欧美中文在线| 成人爱爱电影网址| 亚洲国产日韩精品| 精品1区2区在线观看| www.日韩av| 免费精品99久久国产综合精品| 国产亚洲一区二区在线观看| 日本精品视频一区二区| 久久精品国产秦先生| 日韩一区中文字幕| 日韩视频在线一区二区| 成人伦理片在线| 日韩国产欧美在线播放| 国产精品久久综合| 日韩色在线观看| 在线亚洲+欧美+日本专区| 国产在线精品视频| 亚洲一区二区视频| 国产欧美精品一区二区三区四区 | 国产成人免费在线观看不卡| 亚洲一二三四区不卡| 国产欧美视频一区二区三区| 日韩午夜电影av| 在线观看欧美精品| 不卡在线视频中文字幕| 激情六月婷婷综合| 亚洲成av人片观看| 亚洲日本欧美天堂| 日本一区二区三区国色天香| 日韩一级免费观看| 欧美肥胖老妇做爰| 在线观看区一区二| 91在线视频播放| 成人激情图片网| 国产福利91精品一区二区三区| 琪琪一区二区三区| 五月婷婷激情综合| 亚洲一区二区三区激情| 尤物在线观看一区| 国产精品高潮呻吟| 亚洲国产成人午夜在线一区| 久久精品视频免费| 精品久久久久久久久久久久包黑料| 欧美图区在线视频| 欧美亚洲日本国产| 欧美性淫爽ww久久久久无| 日本电影欧美片| 色域天天综合网| 在线中文字幕不卡| 欧美系列一区二区| 欧美日韩视频第一区| 欧美日韩久久不卡| 91精品久久久久久久91蜜桃| 欧美一级片免费看| 日韩欧美国产三级| 久久久久久久综合色一本| 久久久国产一区二区三区四区小说 | 日韩欧美一区二区三区在线| 91精品国产欧美一区二区成人| 在线不卡一区二区| 91精品国产麻豆国产自产在线 | 日韩免费观看高清完整版| 欧美一区午夜视频在线观看| 91精品一区二区三区久久久久久| 欧美日韩国产综合久久| 欧美精品亚洲二区| 91精品婷婷国产综合久久竹菊| 欧美精品丝袜中出| 久久综合久久99| 欧美激情综合网| 亚洲欧美日韩久久| 午夜精品久久久久久不卡8050| 日韩激情一区二区| 国产又粗又猛又爽又黄91精品| 成人综合婷婷国产精品久久蜜臀 | 另类欧美日韩国产在线| 国产精品综合二区| 色天天综合久久久久综合片| 欧美日韩在线一区二区| 欧美xxxxxxxxx| 国产精品毛片无遮挡高清| 一区二区三区日韩精品| 视频在线在亚洲| 国产一区二区三区在线观看精品 | 色婷婷av一区二区三区大白胸| 欧美日韩成人一区| 2欧美一区二区三区在线观看视频| 日本一区二区三区视频视频| 亚洲国产欧美日韩另类综合 | 国产伦理精品不卡| 色婷婷av一区二区| www日韩大片| 亚洲激情网站免费观看| 青青草国产精品97视觉盛宴 | 成人欧美一区二区三区黑人麻豆| 亚洲色欲色欲www| 日本三级韩国三级欧美三级| 成人国产精品视频| 日韩视频中午一区| 亚洲一区二区三区激情| 国产寡妇亲子伦一区二区| 在线看国产日韩| 精品1区2区在线观看| 亚洲综合久久av| 国产jizzjizz一区二区| 日韩一区二区三区免费看| 成人免费在线播放视频| 韩日欧美一区二区三区| 欧美在线不卡视频| 国产精品久久久久9999吃药| 日韩成人一区二区| 色综合久久久久| 欧美国产日韩精品免费观看| 极品美女销魂一区二区三区| 欧美日韩国产综合一区二区三区| 中文字幕亚洲电影| 国产精品一级在线| 欧美一区二区私人影院日本| 亚洲一区二区精品视频| www.在线成人| 国产无遮挡一区二区三区毛片日本| 日韩国产在线观看| 欧美视频在线一区二区三区| 最新国产の精品合集bt伙计| 国产精品1区2区| 精品国产一二三区| 久久99久久久久| 91精品国产乱码久久蜜臀| 亚洲电影你懂得| 色av一区二区| 亚洲精选一二三| av电影一区二区| 国产精品久久久一本精品| 国产成人免费在线| 久久精品欧美日韩| 国产精品亚洲一区二区三区在线 | 日韩一区欧美小说| 99久久伊人精品| 国产精品麻豆网站| 成人精品电影在线观看| 国产亚洲精品久| 国产v综合v亚洲欧| 国产精品久久久久久久久果冻传媒| 成人妖精视频yjsp地址| 日本一区免费视频| 成人免费观看av| 中文字幕亚洲电影| 欧洲av一区二区嗯嗯嗯啊| 亚洲一区二区在线视频| 91久久精品网| 视频在线观看国产精品| 3d成人h动漫网站入口| 免费欧美在线视频| 精品国偷自产国产一区| 国产在线播放一区三区四| 国产欧美日本一区视频| 色综合天天综合| 亚洲国产日韩在线一区模特| 日韩一区二区在线免费观看| 国产综合成人久久大片91| 国产欧美日韩中文久久| 97se亚洲国产综合在线| 亚洲高清视频的网址| 91精品福利在线一区二区三区| 韩国精品一区二区| 亚洲欧洲另类国产综合| 欧美系列日韩一区| 国产在线精品不卡| 成人欧美一区二区三区小说| 欧美日本在线观看|