IPX协议编程

本文介绍了如何在编程中使用IPX协议进行数据广播。首先,需要安装IPX协议,并将其设置为Ethernet 802.3。接着,通过示例代码展示了接收端的流程,包括初始化WSAData,创建socket,设置SO_BROADCAST选项,填充SOCKADDR_IPX结构体并绑定到特定端口。关键点在于接收端的nodenum应设置为客户端的MAC地址。
摘要由CSDN通过智能技术生成

如果使用IPX协议广播数据,必须先安装IPX协议,安装方法google下到处都有,接下来就是设置IPX的属性了,这一步相当重要不然是收不到数据的,一般设置为Ethernet 802.3。这个问题也是困扰了我很久。(recvfrom就是收不到数据而抓包软件是可以收到包的,汗一个)

代码方面:

接收端流程

WSAData wsa;

 WSAStartup(MAKEWORD(1, 1), &wsa);
 if((this->m_sdServer=socket(AF_IPX, SOCK_DGRAM, NSPROTO_IPX))==INVALID_SOCKET)
 {
   this->m_sdServer=NULL;
  return false;
 }

 BOOL m_fBroadcast = TRUE;
 if((setsockopt(this->m_sdServer, SOL_SOCKET, SO_BROADCAST, (CHAR*)&m_fBroadcast, sizeof(bool)))==SOCKET_ERROR)
 {
  //ui->m_lConnected->setText("警告:设置Socket参数失败"+QString().setNum(WSAGetLastError()));
  this->m_sdServer=NULL;
  return false;
 }


 SOCKADDR_IPX m_SvrSockAddr;
 m_SvrSockAddr.sa_family=AF_IPX;
 m_SvrSockAddr.sa_socket=htons(0x4000);
 memset(m_Svr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值