1
ブロードキャストを使用せずにLAN内の各マシンにUdpメッセージを送信します。そう、このように私のコード:LAN内の各マシンに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));
}
のみについての最初の20機(192.168.1.2〜192.168.1.20)がメッセージを受け取ることができ、他のマシンのほとんどはそれを受け取ることができませんでした。
私は20台のマシンに送信し、スリープしてから(5)、他の20台のマシンに送信しようとします。しかし、この方法は役に立たない。
私のプロジェクトはモバイルに関するアプリケーションで、モバイルのアドレスを知りたいです.LANのWIFIでは、モバイルのアドレスは通常192.168.1.100から始まりますが、それは保証できません。 "for(int i = 100、i <120、i ++)"を使用すると、192.168.1.2〜99と192.168.1.121〜254はマッサージを受け取れませんでした。 – liuhui
あなたの目標を達成するために他の方法を見つけなければなりません。あなたのコメントの中の何も答えに矛盾するもの、または補足するものはありません。 –