Çok Noktaya Yayın UDP paketinin göndericisinin IP'sini nasıl alırsınız? Geçerli kod senkronize/engelleme şeklinde ayarlanır (aşağıdaki nota bakınız). Böyle benim kod olmadığı için bu soru sohbet geliyor:Çok noktaya yayın paketinden gönderen ip alın
private void receive()
{
string mcastGroup = SetMcastGroup();
s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
s.EnableBroadcast = true;
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 5000);
s.Bind(ipep);
IPAddress ip = IPAddress.Parse(mcastGroup);
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip, IPAddress.Any));
while (true)
{
try
{
byte[] b = new byte[4096];
s.Receive(b);
string str = Encoding.ASCII.GetString(b, 0, b.Length);
//this.SetText(ipep.Address + ": " + str.Trim());
this.SetText(senderIP() + ": " + str.Trim());
}
catch{}
}
}
Not: Burada kodudur. Sadece soruyorum çünkü sorunu anlıyorum.
yerine bu çağrıyı
receiveFrom
yapmak için hiç boş 'catch {}' lütfen kullanmayın. Hataları basitçe maskeler ve sorunları tanımayı zorlaştırır. Belirli bir özel durumu görmezden gelmeye çalışıyorsanız, bu özel tür için bunu yapın (örn. "FileNotFoundExcetion {}" yakalayın) –@JonathonReinhart Benim hakkımda söyleyemediğim yorumu okudum benim * * Uydur * –
Eksik olduğum için özür dilerim . Ancak, ben buna "ateşli" demezdim, buna "yapıcı bir öneride bulunma" derim. –