哪位高手做过网络层组播流媒体系统?有没有这样的开源代码参考一下,多谢了!

harezgq 2007-01-17 10:27:09
现在要做一个网络层组播流媒体系统,哪位高手给点思路?
...全文
514 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_heart 2007-01-25
  • 打赏
  • 举报
回复
up
lirengming 2007-01-25
  • 打赏
  • 举报
回复
www.openh323.org
http://www.voxgratia.org/downloads.html
harezgq 2007-01-23
  • 打赏
  • 举报
回复
up.
harezgq 2007-01-22
  • 打赏
  • 举报
回复
写了一个服务端和一个客户端程序;
客户端接不到组播数据;不知道什么原因
//server端
#include "winsock2.h"
#include <ws2tcpip.h>
#include "tpipv6.h" // For IPv6 Tech Preview.

#define MulticastAddress "224.0.0.8"
#define MulticastPort 25000
char sendbuf[6]="hello";
int numsend;
int iTTL=7;
SOCKET Sock,SockM; //多播套接字
DWORD cbRet;
bool bFlag,bJoin;
SOCKADDR_IN local,Remote,From; //分别指向本地、多播组和数据来源的IP地址与端口
int Fromlen;

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int iret;
wVersionRequested = MAKEWORD(2,2);
iret = WSAStartup(wVersionRequested, &wsaData); //初始化WinSock2资源
if(iret!= 0){
printf("不能加载Windows套接字动态链接库,MB_OK");
return;
}
if (LOBYTE(wsaData.wVersion) !=2 || HIBYTE(wsaData.wVersion) !=2){
printf("WinSock DLL不支持2.0版本,MB_OK");
WSACleanup( );
return;
}
//创建一个套接字
Sock=WSASocket(AF_INET,SOCK_DGRAM,IPPROTO_UDP,
(LPWSAPROTOCOL_INFO)NULL,0,WSA_FLAG_OVERLAPPED
| WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF);

//将套接字绑定到用户指定端口及默认的接口
memset(&local,0,sizeof(local));
local.sin_family=AF_INET;
local.sin_port=htons(MulticastPort);
local.sin_addr.s_addr=htonl(INADDR_ANY);
bind(Sock,(struct sockaddr FAR *)&local,sizeof(local));

//设置多播数据报传播范围(生存时间TTL)
WSAIoctl(Sock,SIO_MULTICAST_SCOPE,&iTTL,sizeof(int),
NULL,0,&cbRet,NULL,NULL);

memset(&Remote,0,sizeof(Remote));
Remote.sin_family=AF_INET;
Remote.sin_addr.s_addr=inet_addr(MulticastAddress);
Remote.sin_port=htons(MulticastPort);

//加入到指定的多播组,并指定作为发送者(JL_SENDER_ONLY)
/*
SockM=WSAJoinLeaf(Sock,(sockaddr*)&Remote,sizeof(Remote),
NULL,NULL,NULL,NULL,JL_SENDER_ONLY);
*/
while(1)
{
if (sendto(Sock,sendbuf,sizeof(sendbuf),0,(sockaddr*)&Remote,sizeof(Remote))==SOCKET_ERROR)
{
printf("sendto failed with: %d\n",WSAGetLastError());
closesocket(SockM);
closesocket(Sock);
WSACleanup();
return;
}
Sleep(20);
}
}
//客户端
#include "winsock2.h"
#include <ws2tcpip.h>
#include "tpipv6.h" // For IPv6 Tech Preview.

#define MulticastAddress "224.0.0.8"
#define MulticastPort 25000
char recvbuf[6];
int numsend;
int iTTL=7;
SOCKET Sock,SockM; //多播套接字
DWORD cbRet;
bool bFlag,bJoin;
SOCKADDR_IN local,Remote,From; //分别指向本地、多播组和数据来源的IP地址与端口
int Fromlen,ret;


void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int iret;
wVersionRequested = MAKEWORD(2,2);
iret = WSAStartup(wVersionRequested, &wsaData); //初始化WinSock2资源
if(iret!= 0){
printf("不能加载Windows套接字动态链接库,MB_OK");
return;
}
if (LOBYTE(wsaData.wVersion) !=2 || HIBYTE(wsaData.wVersion) !=2){
printf("WinSock DLL不支持2.0版本,MB_OK");
WSACleanup( );
return;
}
//创建一个套接字
Sock=WSASocket(AF_INET,SOCK_DGRAM,IPPROTO_UDP,
(LPWSAPROTOCOL_INFO)NULL,0,WSA_FLAG_OVERLAPPED
| WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF);

//将套接字绑定到用户指定端口及默认的接口
memset(&local,0,sizeof(local));
local.sin_family=AF_INET;
local.sin_port=htons(MulticastPort);
local.sin_addr.s_addr=htonl(INADDR_ANY);
bind(Sock,(struct sockaddr FAR *)&local,sizeof(local));

//设置多播数据报传播范围(生存时间TTL)
WSAIoctl(Sock,SIO_MULTICAST_SCOPE,&iTTL,sizeof(int),
NULL,0,&cbRet,NULL,NULL);

memset(&Remote,0,sizeof(Remote));
Remote.sin_family=AF_INET;
Remote.sin_addr.s_addr=inet_addr(MulticastAddress);
Remote.sin_port=htons(MulticastPort);
//加入到指定的多播组,并指定为接收者(JL_RECEIVER_ONLY)
if((SockM=WSAJoinLeaf(Sock,(sockaddr*)&Remote,sizeof(Remote),
NULL,NULL,NULL,NULL,JL_RECEIVER_ONLY))==INVALID_SOCKET)
{
printf("WSAJoinLeaf() failed:%d\n",WSAGetLastError());
closesocket(Sock);
WSACleanup();
return;
}
while(1)
{
if ((ret = recvfrom(SockM,recvbuf,sizeof(recvbuf),0,(sockaddr *)&From,&Fromlen))==SOCKET_ERROR)
{
printf("recvfrom failed with:%d\n",WSAGetLastError());
closesocket(SockM);
closesocket(Sock);
WSACleanup();
return;
}
//AfxMessageBox(recvbuf);
if (strcmp(recvbuf,"hello")==0)
{
printf("client has received data");
break;
}
}
}
Estfania 2007-01-18
  • 打赏
  • 举报
回复
开源代码不是很清楚;
不过软件到有
harezgq 2007-01-18
  • 打赏
  • 举报
回复
再顶!
ajn_sailing 2007-01-18
  • 打赏
  • 举报
回复
up
stevphen 2007-01-18
  • 打赏
  • 举报
回复
关注
lr21shiji 2007-01-18
  • 打赏
  • 举报
回复
ding
wormwormwormworm 2007-01-18
  • 打赏
  • 举报
回复
这个不好找啊
gaooo 2007-01-18
  • 打赏
  • 举报
回复
gz

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧