private void ConnectCallback(IAsyncResult ar) { Socket client = (Socket)ar.AsyncState; try { client.EndConnect(ar); } catch (Exception) { AlertMessages.Show("Server not available! :( We are working on this issue, please try again later."); } connectDone.Set(); }
private StringBuilder ReceivData(SynchronizationContext uiContext, IJsonContainer container) { var buffer = new byte[256]; int size = 0; var textFromServer = new StringBuilder(); do { try { size = TcpSocket.tcpSocket.Receive(buffer); } catch (Exception ex) { AlertMessages.Show(ex.Message); uiContext.Send(x => OnlineUsers.UserList.Clear(), null); container?.Persons?.Clear(); TcpSocket.tcpSocket.Shutdown(SocketShutdown.Both); TcpSocket.tcpSocket.BeginDisconnect(true, new AsyncCallback(DisconnectCallback), TcpSocket.tcpSocket); IsConnected = false; _windowsViewModel.ChangeView(1); } textFromServer.Append(Encoding.UTF8.GetString(buffer, 0, size)); } while (TcpSocket.tcpSocket.Available > 0); return(textFromServer); }