Ejemplo n.º 1
0
        /// <summary>
        /// Receives state and server's transfered bytes and appends UTF8 conversion to warden's message variable
        /// </summary>
        /// <param name="ARSTATE"></param>
        public static void receiveMessage(IAsyncResult ARSTATE)
        {
            try
            {
                NetworkWarden warden   = (NetworkWarden)ARSTATE.AsyncState;
                int           numBytes = warden.socket.EndReceive(ARSTATE);

                if (numBytes > 0)
                {
                    string newMessage = Encoding.UTF8.GetString(warden.buffer, 0, numBytes);
                    newMessage = newMessage.Trim();
                    newMessage = newMessage.TrimEnd();
                    //string[] lines = ss.sb.ToString().Split(new string[] {"\n"}, StringSPlitOptions.None);
                    //warden.message.Clear();
                    //warden.message.Append(newMessage);
                    Console.WriteLine("Server said: " + newMessage);
                }

                warden.callNext(warden);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Receive callback failed. Error occured: " + e);
                return;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This function "assists" the Send function. If all the data has been sent, end sending procedure.
        /// </summary>
        static void StopSend(IAsyncResult ARSTATE)
        {
            NetworkWarden warden = (NetworkWarden)ARSTATE.AsyncState;

            warden.socket.EndSend(ARSTATE);
            //Console.WriteLine("warden callnext: " + (warden.callNext.Method.Name));
            warden.callNext(warden);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// If connection with server successful, complete connection.
        /// Begin listening for server data.
        /// </summary>
        /// <param name="ARSTATE"></param>
        static private void handleSuccessfulConnection(IAsyncResult ARSTATE)
        {
            NetworkWarden warden = (NetworkWarden)ARSTATE.AsyncState;

            try
            {
                //stops the attempt to connect routine
                warden.socket.EndConnect(ARSTATE);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Unable to connect to server. Error occured: " + e);
                return;
            }
            //begin receiving data.
            warden.callNext(warden);
            warden.socket.BeginReceive(warden.buffer, 0, warden.buffer.Length, SocketFlags.None, receiveMessage, warden);
        }