public void JoinMulticastGroup() { try { mcastSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPAddress localIPAddr = IPAddress.Any; IPEndPoint IPlocal = new IPEndPoint(localIPAddr, 0); mcastSocket.Bind(IPlocal); MulticastOption mcastOption; mcastOption = new MulticastOption(Networking.mcastAddress, localIPAddr); mcastSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, mcastOption); } catch (Exception e) { Console.WriteLine(e.ToString()); mf.Invoke(mf.fatalError, "Errore di connessione alla rete"); } }
private void StartMulticast() { try { mcastSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPAddress localIPAddr = IPAddress.Any; EndPoint localEP = (EndPoint) new IPEndPoint(localIPAddr, Networking.mcastPort); mcastSocket.Bind(localEP); mcastOption = new MulticastOption(Networking.mcastAddress); mcastSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, mcastOption); //mcastSocket.MulticastLoopback = false; } catch (Exception e) { Console.WriteLine(e.ToString()); mf.Invoke(mf.fatalError, "Errore di connessione alla rete"); } }
public void Start() { Console.WriteLine("Listen.Start()"); try { Thread th = new Thread(Receive); th.IsBackground = true; th.Name = "RecvFileListen"; th.Start(); } catch (Exception e) { Console.WriteLine(e.ToString()); mf.Invoke(mf.fatalError, "Errore fatale"); } }