public NetHelper(int port, JoystickHelper joystickHelper) { this.port = port; listener = new UdpClient(port); groupEP = new IPEndPoint(IPAddress.Any, port); socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); connectionMessage = port.ToString(); this.joystickHelper = joystickHelper; }
public Form1() { InitializeComponent(); joystickHelper = new JoystickHelper(); netHelper = new NetHelper(PORT, joystickHelper); btnStopBroadcast.Enabled = false; IPAddress dhcpIP = netHelper.getDHCPAddr(); var addressList = Dns.GetHostByName(Environment.MachineName).AddressList; foreach (var a in addressList) { if (IPAddressExtensions.IsInSameSubnet(dhcpIP, a, IPAddressExtensions.GetSubnetMask(a))) { cbboxIP.Items.Add(a.ToString()); cbboxIP.SelectedIndex = 0; cbboxIP.Refresh(); } } listenerThread = new System.Threading.Thread(() => { NetHelper.Message message; try { while (true) { switch ((message = netHelper.listen()).type) { case NetHelper.Message.Type.CONNECT: break; case NetHelper.Message.Type.INPUT: joystickHelper.parseMessage(message); break; } ; } } catch (Exception e) { if (!(e is ThreadAbortException)) { throw new Exception(e.Message); } } }); listenerThread.Start(); }