Tag: broadcast

UDP WinSock – 未接收广播数据包

我正在测试一个简单的套接字设置,其中服务器侦听指定的端口,并且客户端发送应该由该服务器接收的广播数据包。 这种设置在直接发送消息(即不是广播)时工作正常,但是在服务器上从未接收到广播数据包时。 一些代码(为简单起见,删除了错误检查): // Client (broadcast sender) // Create and bind the client socket clientSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); sockaddr_in sockAddr; sockAddr.sin_family = AF_INET; sockAddr.sin_port = htons(5678); sockAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); bind(clientSocket, (sockaddr*)(&sockAddr), sizeof(sockAddr)); u_long uMode = 1; ioctlsocket(clientSocket, FIONBIO, &uMode); char broadcast = 1; setsockopt(clientSocket, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast)); // … // Send the packet […]

从ip和子网掩码计算广播地址

我想计算广播地址: IP: 192.168.3.1 Subnet: 255.255.255.0 = 192.168.3.255 在C. 我知道的方式(在反向的IP和子网之间做出花哨的按位OR),但我的问题是我来自MacOSX Cocoa编程的绿色领域。 我查看了ipcal的来源,但无法将其集成到我的代码库中。 互联网上必须有一行简单的十行代码,我找不到它。 有人能指出我在C中如何做到的简短代码示例吗?