3581|3

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE5.0 多址广播WSASocket创建失败? [复制链接]

首先说下,我的WINCE系统是支持WinSock2的,可以用WinSock2库的函数,在我的程序中想要创建多址广播套接字
创建函数:SOCKET WSASocket(
  int af,
  int type,
  int protocol,
  LPWSAPROTOCOL_INFO lpProtocolInfo,
  GROUP g,
  DWORD dwFlags
);
// 创建一个多址广播套接字
m_hSock = WSASocket(AF_INET, SOCK_DGRAM,  IPPROTO_UDP,
                (LPWSAPROTOCOL_INFO)NULL, 0, WSA_FLAG_OVERLAPPED
                | WSA_FLAG_MULTIPOINT_C_LEAF | WSA_FLAG_MULTIPOINT_D_LEAF);
返回错误,前面的代码Socket已经初始化了。错误码是10022,就是WSAEINVAL ,无效的参数,可能是函数dwFlags无效了,这个在WINDOWS下是没问题的,请问哪位知道怎么弄?我的目的要实现多址广播。
此帖出自WindowsCE论坛

最新回复

我自己用setsockopt函数解决了,呵呵,不过这个在WINDOWS上,直接给参数5不对,函数setsockopt会失败。结贴了。  详情 回复 发表于 2010-3-17 18:41
点赞 关注
 

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
        struct ip_mreq mreq;        
        mreq.imn_multiaddr.S_un.S_addr = inet_addr(m_szBrdAddr);
    mreq.imr_interface.S_un.S_addr = inet_addr(m_szLocalAddr);

        int iR = setsockopt(m_hSock,IPPROTO_IP,5/*IP_ADD_MEMBERSHIP*/,(const char*)&mreq,sizeof(mreq));  
        if ( iR  <  0 )
        {
                AfxMessageBox(L"setsockopt error!!!!1");
        }

这个在WINCE下行的,呵呵
此帖出自WindowsCE论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
上面用到的结构体没定义下面给出:
struct ip_mreq            
{  
      struct in_addr imn_multiaddr;         /*加入或者退出的广播组IP地址*/   
      struct in_addr imr_interface;         /*加入或者退出的网络接口IP地址*/   
};
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
我自己用setsockopt函数解决了,呵呵,不过这个在WINDOWS上,直接给参数5不对,函数setsockopt会失败。结贴了。
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表