怎样发送广播消息

nichang 2001-08-21 04:45:07
使用CSocket类,比如发送一字符串"hello"
具体步骤应怎样,谢谢
...全文
413 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
use_id 2001-08-24
  • 打赏
  • 举报
回复
学习。
xwchena 2001-08-21
  • 打赏
  • 举报
回复
给你一段代码:
CString message="just a test";
SOCKET s=INVALID_SOCKET;
s=::socket(AF_INET,SOCK_DGRAM,0);
if(s==INVALID_SOCKET)
{
AfxMessageBox("建立广播SOCKET 失败!");
return 11015;
}

BOOL boptval=TRUE;
if(setsockopt(s,SOL_SOCKET,SO_BROADCAST, (const char *)&boptval,sizeof(boptval)))
{
AfxMessageBox("setsockopt error ");
::closesocket(s);
return 11015;
}

//本地
sockaddr_in addr;
memset(&addr,0,sizeof(sockaddr_in));
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr=INADDR_ANY;
addr.sin_port =htons(3000);

// 绑定
int err=bind(s,(sockaddr*)&addr,sizeof(sockaddr));
if(err!=0)
AfxMessageBox("绑定错误");

//目标
sockaddr_in destaddr;
memset(&destaddr,0,sizeof(sockaddr_in));
destaddr.sin_family = AF_INET;
destaddr.sin_addr.S_un.S_addr=inet_addr("192.168.1.255");
destaddr.sin_port =htons(5000);

err=sendto(s,(const char*)&message,11,0,(sockaddr*)&destaddr,sizeof(destaddr));
if(err==SOCKET_ERROR)
{
AfxMessageBox("sendto err");
::closesocket(s);
return 11015;
}

::closesocket(s);
return 11014;
nichang 2001-08-21
  • 打赏
  • 举报
回复
谢谢,可以运行了,代码没有变,真奇怪
nichang 2001-08-21
  • 打赏
  • 举报
回复
我的代码是这样的。
Client端:
ServerSend.Create(4000,SOCK_DGRAM);
char strText[20];
CString strAllAddr="127.0.0.1";
strcpy(strText,"nichang");
ServerSend.SendTo(strText,strlen(strText),4000,strAllAddr);
Server端:
CSocket ServerRec;
if(!ServerRec.Create(4000,SOCK_DGRAM,"127.0.0.1"))
{
MessageBox("error");
return;
}
char strText[20];
CString strAddr;
UINT nPort;
ServerRec.ReceiveFrom(strText,20,strAddr,nPort);
MessageBox(strText);
我的服务端接受不到客户端的信息
MicroAngel 2001-08-21
  • 打赏
  • 举报
回复
创建的socket应该具有SO_BROADCAST属性
xzou 2001-08-21
  • 打赏
  • 举报
回复
其他步骤相当于一个udp的发送,需要初始化WSAStartup(),sockst(),发送端sendto()....
接受端recvfrom().....
nichang 2001-08-21
  • 打赏
  • 举报
回复
该Scocket是否需要初始化呢
xzou 2001-08-21
  • 打赏
  • 举报
回复
用UDP包发送,使用sendto函数,参数const struct sockaddr FAR * to,里写入广播地址.

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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