private void RemoveClient(Client client) { client.Connected -= client_OnConnected; client.SocketError -= client_OnSocketError; client.Disconnected -= client_OnDisconnected; client.MessageReceived -= client_OnMessageReceived; Close(client); if (!clients.TryRemove(client.Id, out client)) { throw new Exception("if (!clients.TryRemove(client.Id, out client)))"); } nextClientId.Push(client.Id); OnDisconnected(client); }
private void client_OnMessageReceived(Client client, ReceivedEventArgs eventArgs) { OnMessageReceived(client, eventArgs.Message, eventArgs.MessageKind); }
private void client_OnMessageSent(Client client) { OnMessageSent(client); }
private void client_OnSocketError(Client client, SocketErrorEventArgs eventArgs) { OnSocketError(client, eventArgs.Exception); }
private void client_OnDisconnected(Client client, EventArgs eventArgs) { RemoveClient(client); }
private void client_OnConnectionClosed(Client sender, EventArgs eventArgs) { timer1.Enabled = false; HandleTitleChange("Client - Disconnected"); HandleNewMsg(Environment.NewLine + "Disconnected!"); }
public static ServerSocketErrorEventArgs NewEvent(Client client, Exception exception) { return new ServerSocketErrorEventArgs() { Client = client, Exception = exception }; }
private void Close(Client client) { if (client != null) { client.Close(); } }
internal void OnSocketError(Client client, Exception exception) { SocketError(this, ServerSocketErrorEventArgs.NewEvent(client, exception)); }
internal void OnDisconnected(Client client) { Disconnected(this, ServerEventArgs.NewEvent(client)); }
private void HandleClient() { if (client == null) { client = new Client(); client.MessageReceived += client_OnMessageReceived; client.Disconnected += client_OnConnectionClosed; client.Connected += client_OnConnected; client.SocketError += client_OnSocketError; client.ClientIdReceived += client_OnReceivedClientId; client.ListClientIdReceived += client_OnReceivedListClientId; } client.Connect(AddressTest, PortTest); }
private void client_OnSocketError(Client sender, SocketErrorEventArgs eventArgs) { MessageBox.Show(eventArgs.Exception.Message + Environment.NewLine + eventArgs.Exception.StackTrace); }
void client_OnReceivedListClientId(Client sender, ListClientIdEventArgs eventArgs) { this.Invoke(new Action(() => { listBox1.Items.Clear(); listBox1.Items.AddRange(eventArgs.Id.Select(x => (object)x).ToArray()); })); }
void client_OnReceivedClientId(Client sender, ClientIdEventArgs eventArgs) { HandleTitleChange("Client - Connected - " + client.Id); }
private void client_OnMessageReceived(Client client, ReceivedEventArgs eventArgs) { if (eventArgs.Message != null) { HandleNewMsg(Environment.NewLine + Encoding.UTF8.GetString(eventArgs.Message)); } }
private void HandleNewClient(Socket socket) { int id; if (!nextClientId.TryPop(out id)) { id = Interlocked.Increment(ref maxid); } var client = new Client(id, socket); if (!clients.TryAdd(id, client)) { throw new Exception("if(!clients.TryAdd(id, client))"); } client.Connected += client_OnConnected; client.SocketError += client_OnSocketError; client.MessageReceived += client_OnMessageReceived; client.Disconnected += client_OnDisconnected; client.InitSocket(); client.OnConnected(); }
internal void OnMessageSent(Client client) { MessageSent(this, ServerEventArgs.NewEvent(client)); }
internal void OnMessageReceived(Client client, byte[] message, MessageKind messageKind) { if (messageKind == MessageKind.Message) { MessageReceived(this, ServerReceivedEventArgs.NewEvent(client, message, messageKind)); } else if (messageKind == MessageKind.ListClientId) { client.Send(clients.Keys.ToArrayOfByte(), MessageKind.ListClientId); } }
public static ServerReceivedEventArgs NewEvent(Client client, byte[] message, MessageKind messageKind) { return new ServerReceivedEventArgs() { Client = client, Message = message, MessageKind = messageKind }; }
private void client_OnConnected(Client client, EventArgs eventArgs) { client.Send(null, MessageKind.ServerReady); client.Send(client.Id.ToByte(), MessageKind.ClientId); client.Send(clients.Keys.ToArrayOfByte(), MessageKind.ListClientId); OnConnected(client); }
public static ServerEventArgs NewEvent(Client client) { return new ServerEventArgs() { Client = client }; }
void client_OnConnected(Client sender, EventArgs eventArgs) { HandleTitleChange("Client - Connected - Unknown Id"); HandleNewMsg(Environment.NewLine + "Connected!"); }