private void StartButton_Click(object sender, EventArgs e) { var loggingDelegate = new LoggingDelegate(AppendText); var userConnectedDelegate = new UserConnectedDelegate(AppendUser); var userDisconnectedDelegate = new UserDisconnectedDelegate(RemoveUser); int.TryParse(portTextBox.Text, out var port); IPAddress.TryParse(ipAddressTextBox.Text, out var ip); if (port == default || ip == null) { var incorrectFields = $"{(port == default ? "port, " : string.Empty)}{(ip == null ? "ip address" : string.Empty)}"; MessageBox.Show($"Some fields are incorrect: {incorrectFields}"); } else { _backgroundWorker.Start(ip, port, loggingDelegate, userConnectedDelegate, userDisconnectedDelegate); var startMessage = $"Server started at {ip}:{port} ..."; _logger.Log(startMessage); AppendText(startMessage); portTextBox.Enabled = false; ipAddressTextBox.Enabled = false; comboBoxInterface.Enabled = false; startButton.Enabled = false; } }
public void Start( IPAddress address, int port, LoggingDelegate loggingDelegate, UserConnectedDelegate userConnectedDelegate, UserDisconnectedDelegate userDisconnectedDelegate) { _address = address; _port = port; _loggingDelegate = loggingDelegate; _userConnectedDelegate = userConnectedDelegate; _userDisconnectedDelegate = userDisconnectedDelegate; Task.Run(StartInternal); }
public ClientConnection( TcpClient tcpClient, Logger logger, LoggingDelegate loggingDelegate, UserConnectedDelegate userConnectedDelegate, UserDisconnectedDelegate userDisconnectedDelegate, ConcurrentDictionary <string, ConcurrentQueue <Message> > notSentMessages, ConcurrentDictionary <string, bool> users) { _client = tcpClient; _logger = logger; _loggingDelegate = loggingDelegate; _userConnectedDelegate = userConnectedDelegate; _userDisconnectedDelegate = userDisconnectedDelegate; _notSentMessages = notSentMessages; _users = users; }
private void RemoveUser(string nickname) { if (logTextBox.InvokeRequired) { var d = new UserDisconnectedDelegate(RemoveUser); userListBox.Invoke(d, new object[] { nickname }); } else { for (var n = userListBox.Items.Count - 1; n >= 0; --n) { var removeListItem = nickname; if (userListBox.Items[n].ToString().Contains(removeListItem)) { userListBox.Items.RemoveAt(n); } } } }