社区
网络编程
帖子详情
高分求一组播源码,请大虾们不吝。。。
janlyjiang
2005-05-13 02:44:32
本人是新手,对组播不太了解,希望哪位大虾手头有现成的可行源代码例子(vc++6.0),
借我参考一下。
希望将源码打包发到janlyjiang@163.com,
一定高分相酬!在此敬候。。。
...全文
113
5
打赏
收藏
高分求一组播源码,请大虾们不吝。。。
本人是新手,对组播不太了解,希望哪位大虾手头有现成的可行源代码例子(vc++6.0), 借我参考一下。 希望将源码打包发到janlyjiang@163.com, 一定高分相酬!在此敬候。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2005-05-17
打赏
举报
回复
要看具体什么问题,才能对应的分析
一般组播接收需要加入组播组的
ddgfei
2005-05-17
打赏
举报
回复
bool UDPMulClass::setMultiGroup()
{
struct ip_mreq stMreq;
stMreq.imr_multiaddr.s_addr = inet_addr("239.254.1.2");
stMreq.imr_interface.s_addr = INADDR_ANY;
int nRet = setsockopt(m_hSocket,
IPPROTO_IP,
IP_ADD_MEMBERSHIP,
(char *)&stMreq,
sizeof(stMreq));
if (nRet == SOCKET_ERROR) {
TRACE ("setsockopt() IP_ADD_MEMBERSHIP address %s failed, Err: %d\n",
"239.254.1.2", WSAGetLastError());
return false;
}
return true;
}
这是我封装的多播的类中得一部分,可以执行加入多播组的功能
ddgfei
2005-05-17
打赏
举报
回复
发送端和接收端都要加入一个多播组,发送端向多播组发送数据,接收端接听就可以了。
和普通的发送数据没有什么区别
janlyjiang
2005-05-17
打赏
举报
回复
问题是好多代码在众多高手机子上能运行,到了我的机子上就运行不起来,
是不是操作系统的问题?我的操作系统是Windows XP sp2 + Vc++6.0。
还需不需要装什么插件?
还有要不要在其入这个组之前创建这个组啊?
搞了好一段时间就是没有眉目,有点晕了:)。。。
kingzai
2005-05-13
打赏
举报
回复
////////////////////send.c////////////////////////////
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#define BUFFSIZE 2048
#define IP_ADDR "224.8.8.1"
#define DEST_PORT 8888
int main(int argc,char *argv[])
{
int sockfd;
struct sockaddr_in addr;
char szError[100];
char buf[] = "Hello, World!";
int ttl = 255 ; // Arbitrary TTL value.
WSADATA WSAData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD(2, 2);
if (WSAStartup (wVersionRequested , &WSAData) != 0)
{
printf ("recver:Initialize Winsock error!");
exit(1);
}
if (LOBYTE(WSAData.wVersion) != 2 || HIBYTE(WSAData.wVersion) != 2 ) {
WSACleanup( );
printf ("setsockopt failed! Error: %d", WSAGetLastError ());
exit(1);
}
addr.sin_family = AF_INET;
addr.sin_port = htons(DEST_PORT);
addr.sin_addr.s_addr = inet_addr(IP_ADDR);
if ((sockfd=socket(AF_INET,SOCK_DGRAM,0)) < 0) {
printf("sender:new a socket error!\n");
exit(1);
}
if(setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, (char *)&ttl, sizeof(ttl))!=0)
{
printf("error setsockopt IP_MULTICAST_TTL\n");
exit(1);
}
/*
if (bind(sockfd,(struct sockaddr *)&recver_addr,sizeof(recver_addr)) < 0) {
closesocket(sockfd);
printf("recver:bind socket error!\n");
exit(1);
}
*/
if (sendto (sockfd, buf, sizeof(buf) , 0, (struct sockaddr *)&addr, sizeof(addr))
== SOCKET_ERROR)
{
wsprintf (szError, TEXT("sendto failed! Error: %d"),
WSAGetLastError ());
MessageBox (NULL, szError, TEXT("Error"), MB_OK);
closesocket (sockfd);
return FALSE;
}
else
{
printf("send ok\n");
}
// Close Sock.
closesocket (sockfd);
WSACleanup ();
return 0;
}
////////////////////send.c////////////////////////////
/////////////////////////////receive.c////////////////////////////
//#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#define BUFFSIZE 2048
#define RECV_IP_ADDR "224.8.8.1"
#define DEST_PORT 8888
int main(int argc,char *argv[])
{
int sockfd;
int sock_reuse = 1;
struct ip_mreq multicast;
struct sockaddr_in recver_addr;
char szError[100];
int index = 0, // Integer index
iRecvLen; // Length of recv_sin
char szMessageA[1024*320]; // ASCII string
TCHAR szMessageW[1024*320]; // Unicode string
WSADATA WSAData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD(2, 2);
if (WSAStartup (wVersionRequested , &WSAData) != 0)
{
printf ("recver:Initialize Winsock error!");
exit(1);
}
if (LOBYTE(WSAData.wVersion) != 2 || HIBYTE(WSAData.wVersion) != 2 ) {
WSACleanup( );
printf ("setsockopt failed! Error: %d", WSAGetLastError ());
exit(1);
}
multicast.imr_multiaddr.s_addr = inet_addr(RECV_IP_ADDR);
multicast.imr_interface.s_addr = htonl(INADDR_ANY);
recver_addr.sin_family = AF_INET;
recver_addr.sin_port = htons(DEST_PORT);
recver_addr.sin_addr.s_addr = INADDR_ANY;
if ((sockfd=socket(AF_INET,SOCK_DGRAM,0)) < 0) {
printf("recver:new a socket error!\n");
exit(1);
}
if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&sock_reuse, sizeof(sock_reuse)) < 0) {
printf("recver : socket options set error");
exit(1);
}
if (bind(sockfd,(struct sockaddr *)&recver_addr,sizeof(recver_addr)) < 0) {
closesocket(sockfd);
printf("recver:bind socket error!\n");
exit(1);
}
if (setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char *)&multicast,sizeof(multicast)) < 0 ) {
sprintf (szError, TEXT("setsockopt failed! Error: %d"), WSAGetLastError ());
printf("%s\n", szError);
closesocket(sockfd);
exit(1);
}
printf("Receive on %s:%d\n", RECV_IP_ADDR, DEST_PORT);
iRecvLen = sizeof (recver_addr);
memset(szMessageA, 0, sizeof(szMessageA));
// Receive data from the multicasting group server.
if (recvfrom (sockfd,
szMessageA,
sizeof(szMessageA),
0,
(struct sockaddr FAR *) &recver_addr,
&iRecvLen) == SOCKET_ERROR)
{
wsprintf (szError, TEXT("recvfrom failed! Error: %d"),
WSAGetLastError ());
MessageBox (NULL, szError, TEXT("Error"), MB_OK);
closesocket (sockfd);
return FALSE;
}
else
{
// Convert the ASCII string to a Unicode string.
for (index = 0; index <= sizeof (szMessageA); index++)
szMessageW[index] = szMessageA[index];
MessageBox (NULL, szMessageW, TEXT("Info"), MB_OK);
}
// Disable receiving on Sock before closing it.
shutdown (sockfd, 0x00);
// Close Sock.
closesocket (sockfd);
WSACleanup ();
return 0;
}
/////////////////////////////receive.c////////////////////////////
自己动手实现netty4
1. 从0开始编写netty4,更详细了解netty的架构思路和编写历程 2. 真正看netty
源码
无障碍 3. 学习看
源码
思考方式 4.帮助面试获得
高分
中国
高分
系列卫星介绍
由于课程汇报,所以作了一个PPT,在此分享一下,可帮助同学们初步了解一下我国的
高分
系列卫星。 一、背景 二、卫星总结 三、中国卫星发射中心 四、
高分
卫星具体参数 五、总结 ...
深度学习:用生成对抗网络(GAN)来恢复
高分
辨率(高精度)图片 (附
源码
,模型与数据集)
平时生活中,我们经常碰到一些自己喜欢的图片却苦于分辨率很低,而原图又找不太到。 现在,神经网络可以帮助我们从一张给定的低分辨率图片恢复出
高分
辨率的图片。 这个功能听上去既炫酷又实用,具体是怎么做的呢,...
高分
系列(GF1-GF7)卫星介绍
高分
专项目前初步计划发射7颗遥感卫星,其中包括...未来中国还将发射携带C波段多极化合成孔径雷达的
高分
三号卫星,它是中国第一颗民用合成孔径雷达卫星,空间分辨率最高可达1米,主要用于对海洋目标的监测;
高分
四号卫
高分
系列卫星介绍(GF)
高分
一号(GF1)卫星介绍 简介 “
高分
一号”于2013年4月26日在酒泉卫星发射中心由长征二号丁运载火箭成功发射。是
高分
辨率对地观测系统国家科技重大专项的首发星,配置了2台2米空间分辨率全色/8米空间分辨率多光谱...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章