Yayını kullanmadan LAN'daki her makineye Udp mesajı göndermek istiyorum. böylece, böyle benim kod:LAN'daki her makineye UDP iletileri nasıl gönderilir?
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));
}
Sadece yaklaşık ilk 20 makineleri (192.168.1.2 ~ 192.168.1.20) mesajını alabilir, diğer makinelerin çoğu alması mümkün olabilir.
20 makineye göndermeyi deniyorum, sonra uyu (5), sonra diğer 20 makineye gönderim vb. ama bu yol işe yaramaz.
Projem mobil cihazlarla ilgili bir uygulamadır ve cep telefonunun adresini bilmek istiyorum, WIFI of LAN'da, cep telefonunun adresi genellikle 192.168.1.100 ile başlıyor ancak bunu garanti edemiyorum. "(int i = 100, i <120, i ++)" için kullanırsam 192.168.1.2 ~ 99 ve 192.168.1.121 ~ 254 masajları alamadı. – liuhui
Hedeflerinizi gerçekleştirmek için başka bir yol bulmak zorundasınız. Yorumunuzdaki hiçbir şey, yanıtla çelişmez ya da tamamlamaz. –