青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 298  文章 - 377  trackbacks - 0
<2016年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用鏈接

留言簿(34)

隨筆分類

隨筆檔案

文章檔案

相冊

收藏夾

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

Multicasting

多播通訊讓網絡客戶充分享受了廣播的便捷而又不用再擔心網絡會被風暴阻塞,所有這一切都歸功于 IGMP 協議的實施。
多播地址是一個D類的IP地址(224.0.0.0-239.255.255.255),其中有一些是為特殊用途而分配的,詳細分配情況請參考 RFC1700。
這里只講述IP多播。IP多播是無根多播,下面只羅列簡單的程序實現,詳細的規范請參考相應的文檔。

#define MCASTADDR "234.5.6.7"
#define MCASTPORT 65500
#define COMMBUFSIZE 1024

// 使用Winsock2
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0) return FALSE;
// 創建多播套接字
SOCKET sock=WSASocket(AF_INET,
SOCK_DGRAM,
0,
NULL,
0,
WSA_FLAG_MULTIPOINT_C_LEAF|
WSA_FLAG_MULTIPOINT_D_LEAF|
WSA_FLAG_OVERLAPPED);
// 綁定套接字
SOCKADDR_IN saiLocal;
saiLocal.sin_family=AF_INET;
saiLocal.sin_port=htons(MCASTPORT);
saiLocal.sin_addr.S_un.S_addr=INADDR_ANY;
if(bind(sock,(SOCKADDR*)&saiLocal,sizeof(saiLocal))==SOCKET_ERROR) return FALSE;
// 設置套接字選項
unsigned long ulNoneBlockingIO=1;
if(SOCKET_ERROR==ioctlsocket(sock, FIONBIO,&ulNoneBlockingIO)) return FALSE;
// Set TTL to 8
int nOpt=8;
if(setsockopt(sock,IPPROTO_IP,IP_MULTICAST_TTL,(char*)&nOpt,sizeof(nOpt))==SOCKET_ERROR) return FALSE;
// Set Loopback
if(m_bLoopBack)
{
BOOL bOpt=0;
if(setsockopt(sock,IPPROTO_IP,IP_MULTICAST_LOOP,(char*)&bOpt,sizeof(bOpt))==SOCKET_ERROR) return FALSE;
}
// 加入多播組
m_saiRemote.sin_family=AF_INET;
m_saiRemote.sin_port=htons(MCASTPORT);
m_saiRemote.sin_addr.S_un.S_addr=inet_addr(MCASTADDR);
DWORD dwFlags=(m_bSender)?JL_SENDER_ONLY:JL_RECEIVER_ONLY;
SOCKET sockM=WSAJoinLeaf(sock,(SOCKADDR*)&m_saiRemote,sizeof(m_saiRemote),NULL,NULL,NULL, NULL,dwFlags);
if(sockM==INVALID_SOCKET)
{
closesocket(sock);
WSACleanup();
return FALSE;
}
// 發送
int nRet=sendto(sock,(char*)pBuf,len,0,(SOCKADDR*)&m_saiRemote,sizeof(m_saiRemote));
// 接收
SOCKADDR_IN sai_From;
int len = sizeof(sai_From);
BYTE buf[COMMBUFSIZE]={'\0'};
int nRetRecv=recvfrom(sock,(char*)buf,COMMBUFSIZE,0,(SOCKADDR*)&sai_From,&len);
// 結束

// 附上一個配置函數
#include "Winsock2.h"
#include "Ws2tcpip.h"

#include "iprtrmib.h"
#include "ipexport.h"
#include "iptypes.h"
#include "iphlpapi.h"

#pragma comment(lib,"ws2_32.lib"
#pragma comment(lib,"iphlpapi.lib"

typedef struct tagNIC
{
int nNum; // 多少塊網卡
unsigned char szHostName[150]; // 主機名
unsigned char szAddr[7*10]; // 每塊網卡地址以 0為間隔255.255.255.255.
unsigned char szMac[7*10]; // 每塊網卡MAC地址0為間隔0x000x040x760x3F0x5F0xA9.
}
NICADDR,*LPNICADDR;

typedef struct tagConfigParam
{
BOOL  bSender; // [IN] 是發送還是接收
char* pszMcastAddr; // [IN] 多播組地址
WORD  wMcastPort; // [IN] 多播端口
NICADDR stuAddr; // [OUT]本地網卡地址信息,函數回填
}
CONFIGPARAM,*LPCONFIGPARAM;

void FuncConfig(CONFIGPARAM* pParam)
{
m_bSender=pParam->bSender;
if(pParam->pszMcastAddr!=NULL)
m_dwMulticastGroup=inet_addr(pParam->pszMcastAddr);
if(pParam->wMcastPort!=0)
m_dwPort=pParam->wMcastPort;
memset(&(pParam->stuAddr),0,sizeof(NICADDR));
char name[MAX_PATH]={'\0'};
if(0==gethostname(name,MAX_PATH))
{
if(strlen(name)>0) strcpy((char*)pParam->stuAddr.szHostName,name);
HOSTENT* HostEnt;
HostEnt=gethostbyname(name);
int n=0;
int m=0;
BOOL bNoConnected=TRUE;
if(HostEnt!=NULL)
{
IP_ADAPTER_INFO AdapterInfo[16];
PIP_ADAPTER_INFO pAdapterInfo;
DWORD dwBufLen=sizeof(AdapterInfo);

DWORD dwRet=GetAdaptersInfo(
AdapterInfo,
&dwBufLen);
if(dwRet==ERROR_SUCCESS) pAdapterInfo=AdapterInfo;

for(int i=0;HostEnt->h_addr_list[i]!=NULL;i++)
{
in_addr ia;
memset(&ia,0,sizeof(ia));
ia.S_un.S_addr = *((unsigned long*)HostEnt->h_addr_list[i]);
char* pszIP = inet_ntoa(ia);
int nLen=strlen(pszIP);
memmove(pParam->stuAddr.szAddr+n,pszIP,nLen);
n+=strlen(pszIP);
n++;

if(dwRet==ERROR_SUCCESS)
{
if(pAdapterInfo)
{
memmove(pParam->stuAddr.szMac+m,pAdapterInfo->Address,6);
pAdapterInfo=pAdapterInfo->Next;
m+=7;
}
}

pParam->stuAddr.nNum++;
}
}
}
}
posted on 2007-08-17 13:18 聶文龍 閱讀(459) 評論(0)  編輯 收藏 引用 所屬分類: net work
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品一区二区在线观看| 欧美亚洲日本网站| 国产一区二区三区的电影 | 国产专区综合网| 一本久久综合亚洲鲁鲁| 久久久久国产一区二区三区| 欧美激情视频网站| 免费在线看一区| 国产在线日韩| 久久综合网hezyo| 久久精品一区二区| 国产日本欧美一区二区三区在线| 午夜亚洲精品| 午夜视频一区二区| 国产亚洲在线观看| 久久九九免费| 久久久久一区二区三区| 亚洲第一在线综合网站| 欧美激情视频免费观看| 麻豆久久精品| 洋洋av久久久久久久一区| 亚洲乱码国产乱码精品精可以看| 欧美精品在线观看91| 一区二区免费看| 亚洲人成久久| 一区二区三区高清不卡| 日韩一级裸体免费视频| 国产精品白丝黑袜喷水久久久| 国产日韩亚洲| 欧美成人免费小视频| 欧美h视频在线| 一区二区久久久久久| aa亚洲婷婷| 国产最新精品精品你懂的| 欧美成人黑人xx视频免费观看| 麻豆91精品| 亚洲无限av看| 欧美在线免费| 亚洲日本中文| 午夜精品久久久久久久99黑人| 黄色成人av| 最新热久久免费视频| 欧美午夜精品理论片a级按摩| 欧美在线播放一区二区| 免费观看在线综合色| 亚洲欧美日韩国产精品| 久久精品国产免费观看| 99riav久久精品riav| 亚洲制服丝袜在线| 亚洲第一精品久久忘忧草社区| 亚洲日本成人女熟在线观看| 国产精品永久免费| 亚洲国产高潮在线观看| 国产精品中文字幕在线观看| 欧美刺激午夜性久久久久久久| 欧美三级视频| 亚洲国产欧美另类丝袜| 国产目拍亚洲精品99久久精品| 男人的天堂成人在线| 国产精品国产精品国产专区不蜜| 玖玖在线精品| 男女精品网站| 久久丁香综合五月国产三级网站| 欧美成人精品三级在线观看| 欧美在线播放高清精品| 欧美日韩午夜在线视频| 欧美成人日韩| 狠狠色综合网| 欧美亚洲日本国产| 午夜精品久久久久久久久久久| 蜜臀av性久久久久蜜臀aⅴ| 欧美一区二区在线播放| 欧美日韩国产色综合一二三四| 免费不卡欧美自拍视频| 国产精品亚洲综合色区韩国| 亚洲精品乱码久久久久久黑人 | 亚洲一区图片| 日韩午夜精品| 欧美国产日韩亚洲一区| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品日本精品| 一区二区三区高清| 亚洲视频免费| 欧美三级日本三级少妇99| 日韩一区二区精品| 亚洲国产精品ⅴa在线观看| 久久久av毛片精品| 国产精品亚洲一区| 亚洲欧美大片| 欧美一区二区三区电影在线观看| 欧美日韩精品是欧美日韩精品| 欧美激情aaaa| 日韩亚洲欧美精品| 欧美日韩p片| 99国产精品国产精品久久| 日韩小视频在线观看| 欧美精品成人在线| 99国产精品国产精品久久| 亚洲男人的天堂在线| 国产精品欧美经典| 小处雏高清一区二区三区 | 久久免费精品日本久久中文字幕| 久久久久久一区二区| 狠狠色伊人亚洲综合成人| 久久久水蜜桃| 亚洲国产欧美不卡在线观看| 日韩视频一区| 国产精品久久久久一区二区三区 | 欧美高清视频一区| 日韩一区二区精品在线观看| 国产精品99久久久久久有的能看| 欧美午夜女人视频在线| 亚洲摸下面视频| 巨乳诱惑日韩免费av| 一本久久精品一区二区| 国产精品一区在线观看你懂的| 久久精品99国产精品| 亚洲国产精品毛片| 亚洲免费在线视频| 精品不卡一区| 欧美特黄一区| 久久欧美中文字幕| 一本色道久久88综合日韩精品| 久久激情综合网| 亚洲狼人综合| 国产亚洲永久域名| 欧美日韩伊人| 久久成人18免费观看| 亚洲国产视频直播| 欧美在线视频网站| 亚洲国产精品女人久久久| 国产精品久久久久久久浪潮网站| 久久久久久久久岛国免费| 亚洲国产99| 久久精品国产综合精品| 亚洲毛片在线| 影音欧美亚洲| 国产精品久久久999| 久久综合影视| 午夜精品影院在线观看| 亚洲美女性视频| 欧美成人精品在线观看| 亚洲曰本av电影| 亚洲精品黄色| 影音先锋日韩精品| 国产精品一区二区久久国产| 欧美激情乱人伦| 久久精品国产99精品国产亚洲性色| 亚洲美女毛片| 亚洲第一二三四五区| 久久精品综合| 欧美亚洲尤物久久| 一区二区三区导航| 亚洲精品中文在线| 亚洲福利视频二区| 欧美与黑人午夜性猛交久久久| 日韩一级不卡| 亚洲国产成人porn| 国产精品免费观看视频| 免费观看成人鲁鲁鲁鲁鲁视频| 99在线|亚洲一区二区| 亚洲成人资源网| 久久综合电影一区| 久久精品人人做人人爽| 亚洲欧美偷拍卡通变态| 一区二区三区四区国产精品| 亚洲承认在线| 在线观看国产欧美| 韩国精品久久久999| 国产精品亚洲综合天堂夜夜| 国产精品国产自产拍高清av| 欧美伦理在线观看| 欧美日韩国产精品一区二区亚洲| 欧美国产日韩亚洲一区| 欧美激情视频一区二区三区免费 | 久久久久网址| 老司机精品视频网站| 久久精品国产免费看久久精品| 久久99伊人| 久久亚洲综合色一区二区三区| 久久午夜视频| 欧美国产一区视频在线观看| 欧美77777| 欧美精品一区二区三区在线播放| 欧美精品免费在线观看| 欧美日韩亚洲视频一区| 欧美性视频网站| 国产日本欧美一区二区| 激情五月***国产精品| 亚洲国产精品尤物yw在线观看| 亚洲激情视频在线| 夜夜夜久久久| 欧美影院视频| 欧美不卡视频一区发布| 亚洲激情一区| 亚洲一区国产一区| 久久精品一本| 欧美国产亚洲精品久久久8v| 欧美午夜在线观看| 国产视频亚洲|