Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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();
            }
        }