91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

vc編寫UDP封裝類(實(shí)用),注釋很詳盡,應(yīng)用很方便。值得學(xué)習(xí)和參考的代碼!

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?
#include?“UdpEx.h“

#ifdef?LogN
#define?Log?LogN(4000)
#elif?(defined?TRACE)
#define?Log?TRACE
#else
#define?Log
#endif

//靜態(tài)實(shí)例成員
CUdpEx?CUdpEx::m_sInstance;

/*******************************************************************************
*?函數(shù)名稱:
*?功能描述: 向指定IP地址和端口發(fā)送數(shù)據(jù)。
*?輸入?yún)?shù): lpszIP --?目標(biāo)IP地址。
* nPort --?端口號(hào)。
* pData --?數(shù)據(jù)緩沖區(qū)。
*
*?輸出參數(shù):
*?返?回?值: 成功發(fā)送完指定的長(zhǎng)度返回TRUE,反之返回FALSE。
*?其它說(shuō)明:
*?修改日期 修改人 修改內(nèi)容
*?------------------------------------------------------------------------------
*?2008-04-23 周鋒 ?????? 創(chuàng)建
*******************************************************************************/
BOOL?CUdpEx::SendUdpData(LPCSTR?lpszIP?int?nPort?const?char?*pData?int?nLen)
{
Log(“Func?--?BOOL?CUdpEx::SendUdpData(%s?%n?%p?%n)“
lpszIP?nPort?pData?nLen);

SOCKET_HANDLE?hSocket;
struct?sockaddr_in?addrRecv;
if?(0?==?(hSocket?=?socket(AF_INET?SOCK_DGRAM?IPPROTO_UDP)))
{
Log(“創(chuàng)建UDP?Socket句柄失敗!“);
return?FALSE;
}
addrRecv.sin_family?=?AF_INET;
addrRecv.sin_port?=?htons(nPort);
addrRecv.sin_addr.s_addr?=?inet_addr(lpszIP);
int?nSended?=?sendto(hSocket?
pData?
nLen?
0?
(sockaddr*)?&addrRecv?
(int)sizeof(addrRecv));

#if?(defined?_WIN32)?||?(defined?_WINDOWS_)
closesocket(hSocket);
#else
close(hSocket);
#endif

return?(nSended?==?nLen);
}

/*******************************************************************************
*?函數(shù)名稱:
*?功能描述: 啟動(dòng)UDP數(shù)據(jù)監(jiān)聽,如果成功將會(huì)把數(shù)據(jù)通過指定回調(diào)函數(shù)返回。
*?輸入?yún)?shù): nPort --?監(jiān)聽的端口號(hào)。
* pfnData --?數(shù)據(jù)反饋的回調(diào)函數(shù)。
* lpszLocalIP --?本機(jī)IP地址,可為空字符串,不可為NULL,輸入空字符串將在所有網(wǎng)卡上進(jìn)行監(jiān)聽。
* lpszMultiIP --?組播地址,可為空字符串,不可為NULL,輸入空字符串將不會(huì)接受組播信息。
*?輸出參數(shù):
*?返?回?值: 啟動(dòng)監(jiān)聽返回TRUE,失敗返回FALSE。
*?其它說(shuō)明:
*?修改日期 修改人 修改內(nèi)容
*?------------------------------------------------------------------------------
*?2008-04-23 周鋒 ?????? 創(chuàng)建
*******************************************************************************/
BOOL?CUdpEx::StartReceive(int?nPort?
??DataReceiveCallbackType?pfnData?
??LPVOID?lpContext
??LPCSTR?lpszLocalIP?
??LPCSTR?lpszMultiIP)
{
Log(“Func?--?BOOL?CUdpEx::StartReceive(%d?%p?%s?%s)“?nPort?pfnData?lpszLocalIP?lpszMultiIP);

sockaddr_in?addrRecv;
struct?ip_mreq?mreq;
SOCKET_HANDLE?hSocket?=?socket(AF_INET?SOCK_DGRAM?IPPROTO_UDP);
addrRecv.sin_family?=?AF_INET;
addrRecv.sin_port?=?htons(nPort);
addrRecv.sin_addr.s_addr?=?inet_addr(lpszLocalIP);

//設(shè)置端口復(fù)用
BOOL?bSockReuse?=?TRUE;
int?iRet?=?setsockopt(hSocket?
SOL_SOCKET
SO_REUSEADDR
(VAL_TYPE)&bSockReuse?sizeof(bSockReuse));


//邦定socket
if(0?!=?bind(hSocket?(sockaddr?*)?&addrRecv?sizeof(addrRecv)))
{
Log(“端口地址綁定失敗<%s:%d>?--?<%d>!“?lpszLocalIP?nPort?WSAGetLastError());
#if?(defined?_WIN32)?||?(defined?_WINDOWS_)
closesocket(hSocket);
#else
close(hSocket);
#endif
return?FALSE;
}

//設(shè)置Socket緩沖(一般默認(rèn)是8192)
int?nRcvBuffSize?=?8192?*?100;
if(0?!=?setso

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????33792??2011-11-17?15:02??UDP封裝類\Debug\vc60.idb

?????文件??????28672??2011-11-17?15:02??UDP封裝類\Debug\vc60.pdb

?????文件??????11930??2008-07-08?17:26??UDP封裝類\UdpEx.cpp

?????文件???????3449??2011-11-17?15:04??UDP封裝類\UdpEx.dsp

?????文件????????518??2009-05-02?14:12??UDP封裝類\UdpEx.dsw

?????文件???????3023??2008-05-08?11:16??UDP封裝類\UdpEx.h

?????文件??????50176??2011-11-17?15:04??UDP封裝類\UdpEx.ncb

?????文件??????53760??2011-11-17?15:04??UDP封裝類\UdpEx.opt

?????文件???????1285??2011-11-17?15:02??UDP封裝類\UdpEx.plg

?????文件??????14726??2008-07-25?16:32??UDP封裝類\udpex_new\udpex\UdpEx.cpp

?????文件???????4171??2008-07-25?16:28??UDP封裝類\udpex_new\udpex\UdpEx.h

?????文件???????5122??2008-07-25?17:16??UDP封裝類\udpex_new.rar

?????文件??????11971??2008-07-09?11:19??UDP封裝類\udpex_old\UdpEx.cpp

?????文件???????3023??2008-05-08?11:16??UDP封裝類\udpex_old\UdpEx.h

?????文件???????4392??2008-07-25?17:16??UDP封裝類\udpex_old.rar

????..A.SHR???????120??2008-12-29?13:48??UDP封裝類\vssver2.scc

?????目錄??????????0??2009-04-27?17:53??UDP封裝類\udpex_new\udpex

?????目錄??????????0??2011-11-17?14:59??UDP封裝類\Debug

?????目錄??????????0??2009-04-27?17:53??UDP封裝類\udpex_new

?????目錄??????????0??2009-04-27?17:53??UDP封裝類\udpex_old

?????目錄??????????0??2011-11-17?15:04??UDP封裝類

-----------?---------??----------?-----??----

???????????????230130????????????????????21


評(píng)論

共有 條評(píng)論