/// <summary> /// Send async data to connected socket /// </summary> /// <param name="client"></param> private static void SendReply(ConnectedObject client) { if (client == null) { Console.WriteLine("Ooops, Connection problem."); return; } Console.WriteLine("Proccessing client message"); // TODO function the reverse client message ReverseMessage() string returnMessage = ReverseMessage(client.IncomingMessage); client.SetOutgoingMessage(returnMessage); var byteReply = client.ConvertStringToByte(client.OutgoingMessage); try { client.ClientSocket.BeginSend(byteReply, 0, byteReply.Length, SocketFlags.None, new AsyncCallback((IAsyncResult ar) => { Console.WriteLine("Reply Sent!"); }), client); } catch (SocketException ex) { // Client was forcebly closed on the client side CloseClientSocket(client); Log.Error(ex.Message); } catch (Exception ex) { Log.Error(ex.Message); } }
/// <summary> /// Send data async to the connected socket /// </summary> /// <param name="client"></param> private static void Send(ConnectedObject client) { while (true) { resetEvent.Reset(); Console.WriteLine("Please Enter your message:"); client.SetOutgoingMessage(Console.ReadLine()); byte[] byteMessage = client.ConvertStringToByte(client.OutgoingMessage); try { client.ClientSocket.BeginSend(byteMessage, 0, byteMessage.Length, SocketFlags.None, new AsyncCallback((IAsyncResult ar) => { }), client); } catch (SocketException ex) { Log.Error(ex.Message); client.Disconnect(); Thread.CurrentThread.Interrupt(); return; } catch (Exception ex) { Log.Error(ex.Message); Thread.CurrentThread.Interrupt(); return; } resetEvent.WaitOne(); } }