首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么在局域网中广播信息

2012-03-09 
如何在局域网中广播信息?如题,我想写个C/S模式的程序,客户端在局域网中广播信息,然后服务器能接收到这个广

如何在局域网中广播信息?
如题,我想写个C/S模式的程序,客户端在局域网中广播信息,然后服务器能接收到这个广播信息,请问应该用TCP还是UDP啊,地址应该怎么分配,我现在的程序,配好服务器地址可以通信,但是用.255的就无法连接。
  大侠们能不能稍微说说广播信息跟一般的socket通信有什么区别啊? 就是知道某服务器的IP地址通信,与不知道服务器IP地址需要广播信息之间的区别。

[解决办法]

C/C++ code
       发送端:       //要发送广播,遵循以下3个步骤:    //1:    //设置有效SO_BROADCAST选项,允许在m_sendSocket上发送广播信息    BOOL bBroadcast=TRUE;    setsockopt(m_sendSocket,SOL_SOCKET,SO_BROADCAST,                (char*)&bBroadcas, sizeof(bBroadcast));    //2:    //设定目的地址和端口(即广播的地址,和广播频率)    m_bcastAddr.sin_family = AF_INET;        m_bcastAddr.sin_addr.s_addr=inet_addr("255.255.255.255");    //本局域网内广播地址    m_bcastAddr.sin_port = htons(m_bcastPort);、    //只要局域网内接收进程调整到该频率(本处m_bcastPort),就可以接收消息                 //3:发送消息    if(sendto(m_sendSocket,buff,sizeof(buff),0,(LPSOCKADDR)&m_bcastAddr,            sizeof(m_bcastAddr)) == SOCKET_ERROR)
[解决办法]
接收端:
C/C++ code
    //绑定一个本地地址,指明广播端口    SOCKADDR_IN local;    local.sin_family=AF_INET;    local.sin_addr.S_un.S_addr=INADDR_ANY;    local.sin_port=htons(pDlg->m_bcastPort);          bind(RecvSocket,(sockaddr*)&local,sizeof(local));        recvfrom(RecvSocket,buff,sizeof(buff),0,(sockaddr *)&addrRemote,&nlen) 

热点排行