Example #1
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();
            }
        }
Example #2
0
 /// <summary>
 /// Close socket send/receive
 /// </summary>
 /// <param name="client"></param>
 private static void CloseClientSocket(ConnectedObject client)
 {
     Console.WriteLine("Client disconnected");
     client.Disconnect();
     if (Clients.Contains(client))
     {
         Clients.Remove(client);
     }
 }
Example #3
0
        /// <summary>
        /// Receive data from a bound socket
        /// </summary>
        /// <param name="client"></param>
        private static void Receive(ConnectedObject client)
        {
            int bytesRead = 0;

            while (true)
            {
                try
                {
                    bytesRead = client.ClientSocket.Receive(client.Buffer, SocketFlags.None);
                }
                catch (SocketException ex)
                {
                    Log.Error(ex.Message);
                    client.Disconnect();
                    Console.WriteLine("Server Disconnect");
                }
                catch (Exception ex)
                {
                    Log.Error(ex.Message);
                }

                if (bytesRead > 0)
                {
                    if (bytesRead > 0)
                    {
                        client.SetIncomingMessage(bytesRead);

                        Console.WriteLine(client.IncomingMessage);

                        bytesRead = 0;

                        resetEvent.Set();
                    }
                }
            }
        }