public void Listen() { while (ListeningToConnection) { byte[] buffer = new byte[1024]; try { string response = Encoding.ASCII.GetString(buffer, 0, connection.Receive(buffer)); Console.WriteLine("RESPONSE: " + response); if (response == "") { PeerDisconnected?.Invoke(); break; } response = response.Replace("\r\n", ""); string[] sections = response.Split('|'); NewResponse?.Invoke(sections[0], sections[1]); } catch { PeerDisconnected?.Invoke(); break; } } }
private async Task <T> SendAndProcessRequest <T>(CancellationToken cancellationToken, RestRequest request) { var response = await _client.ExecuteTaskAsync <T>(request, cancellationToken) .ConfigureAwait(false); // var dict = new Dictionary <string, string> { { "SC", response.StatusCode.ToString() }, { "Content", response.Content }, { "Error", response.ErrorMessage } }; var sb = new StringBuilder(); foreach (var item in dict) { sb.AppendLine(item.Key + " - " + item.Value); } NewResponse?.Invoke(this, sb.ToString()); // return(CheckStatusResponse(response)); }
void HandleClient(object obj) { Socket client = obj as Socket; while (IsServerWork) { try { byte[] buffer = new byte[6500]; client.Receive(buffer); // Принимаем данные Guid id = Guid.NewGuid(); ActAbstract command = commandParser.ParseCommand(buffer, client); if (sender.ExistUser(client)) { NewRequest?.Invoke(DateTime.Now, command.ToString().Split('.').Last(), id, sender.GetUserID(client)); // Событие нового сообщения } else { NewRequest?.Invoke(DateTime.Now, command.ToString().Split('.').Last(), id, Guid.Empty); // Событие нового сообщения } command.Execute(); NewResponse?.Invoke(DateTime.Now, id); } catch (SocketException) { break; // Выходим из цикла } } // Заканчиваем подключение sender.RemoveUser(client); CliendDisconnect.Invoke(); client.Shutdown(SocketShutdown.Both); client.Disconnect(false); client.Dispose(); }
public void OnData(string value) { NewResponse?.Invoke(this, value.ToString()); }