C++ 如何向局域网中的每台机器发送UDP消息

C++ 如何向局域网中的每台机器发送UDP消息,c++,udp,C++,Udp,我想通过不使用广播向局域网中的每台机器发送Udp消息。因此,我的代码如下所示: int sock = socket(AF_INET, SOCK_DGRAM, 0); sockaddr_in tarAddr; memset(&tarAddr, 0, sizeof(sockaddr_in)); tarAddr.sin_family = AF_INET; tarAddr.sin_port = htons(1985); char szTarAddr[16] = {0}; for(int i

我想通过不使用广播向局域网中的每台机器发送Udp消息。因此,我的代码如下所示:

int sock = socket(AF_INET, SOCK_DGRAM, 0);

sockaddr_in tarAddr;
memset(&tarAddr, 0, sizeof(sockaddr_in));
tarAddr.sin_family = AF_INET;
tarAddr.sin_port = htons(1985);

char szTarAddr[16] = {0};

for(int i=2; i<255; i++)
{
    sprintf(szTarAddr, "192.168.1.%d", i);

    //if address is me, Ignore by continue...
       ...

    tarAddr.sin_addr.s_addr = inet_addr(szTarAddr);
    sendto(sock, msg, 18, 0, (sockaddr*)&tarAddr, sizeof(sockaddr));
}
intsock=socket(AF_INET,sock_DGRAM,0);
塔拉德尔的sockaddr_;
memset(&tarAddr,0,sizeof(sockaddr_in));
Taradr.sin_family=AF_INET;
Taradr.sinu port=htons(1985年);
char szTarAddr[16]={0};

对于(inti=2;i,根据定义,UDP是无状态的,并且不保证传递

不保证交付、订购或重复保护


因此,您已经注意到一些UDP数据包没有被传递。这很好,因为UDP数据包传递不受保证。

根据定义,UDP是无状态的,不保证传递。从

不保证交付、订购或重复保护


因此,您已经注意到一些UDP数据包没有发送。这很好,因为UDP数据包的发送没有保证。

我的项目是一个关于移动的应用程序,我想知道移动设备的地址,在局域网的WIFI中,移动设备的地址通常以192.168.1.100开头,但我不能保证。如果我使用“for”(int i=100,iYou必须找出其他方法来实现您的目标。您的评论中没有任何内容与答案相矛盾或补充。我的项目是一个关于移动的应用程序,我想知道移动设备的地址,在局域网的WIFI中,移动设备的地址通常以192.168.1.100开头,但我不能保证。如果我使用“for”(int i=100,i你必须想出其他方法来实现你的目标。你的评论中没有任何内容与答案相矛盾或补充。