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(); }
private void btnBroadcast_Click(object sender, EventArgs e) { if (cbboxIP.SelectedIndex < 0) { MessageBox.Show("You must select an address to broadcast from"); } else { string addr = cbboxIP.Items[cbboxIP.SelectedIndex].ToString(); broadcastAddr = IPAddressExtensions.GetBroadcastAddress(IPAddress.Parse(addr), IPAddressExtensions.GetSubnetMask(IPAddress.Parse(addr))).ToString(); broadcastTimer.Start(); cbboxIP.Enabled = false; btnBroadcast.Enabled = false; btnStopBroadcast.Enabled = true; } }