/// <summary> /// Is callback of Send /// </summary> /// <param name="asyncResult"></param> protected static void SendCallback(IAsyncResult asyncResult) { try { // Retrieve the socket from the state object. Socket client = (Socket)asyncResult.AsyncState; // Complete sending the data to the remote device. int bytesSent = client.EndSend(asyncResult); Trace.WriteLine("Sent {0} bytes to server.", bytesSent.ToString()); // Signal that all bytes have been sent. SendDone.Set(); } catch (Exception e) { Trace.WriteLine(e.ToString()); } }
public string SendMessage(string msg) { try { Helper.SendClient(_client, $"{msg}<EOF>"); SendDone.WaitOne(); State state = new State(1024, this); state.StateSocket = _client; Helper.Receive(ref state); ReceiveDone.WaitOne(); return(state.StringBuffer.ToString()); } catch (Exception e) { Console.WriteLine(e.Message); } return(""); }
public string SendMessage(string msg, TextBox consoleInput) { try { State state = new State(1024, this); state.StateSocket = _client; state.StateForm = ClientForm; consoleInput.Text = ""; AddLog(msg.Trim('\n').Trim('\r')); Helper.SendClient(state, msg); SendDone.WaitOne(); state = new State(1024, this); state.StateSocket = _client; state.StateForm = ClientForm; Helper.Receive(ref state); ReceiveDone.WaitOne(); state.StringBuffer.Clear(); if (!state.StateSocket.Connected || msg.Split(' ')[0].ToLower().Trim('\n').Trim('\r') == "bye") { AddLog("Соединение закрыто, через 2 секунды окно закроется"); Task.Factory.StartNew(async() => { await Task.Delay(2000); ClientForm.SafeClose(); }); } return(state.StringBuffer.ToString()); } catch (Exception e) { Console.WriteLine(e.Message); } return(""); }