예제 #1
0
        private void fClientHome_FormClosed(object sender, FormClosedEventArgs e)
        {
            while (ThreadManager.Count > 0)
            {
                ThreadManager.Dequeue().Abort();
            }
            var pket = new Packet(
                string.Format("{0} ({1}) just been logout", Program.User.Name, Program.User.Username),
                StatusCode.LogOut,
                Program.User.ToJSon()
                );

            Program.srvProxy.Logout(pket.ToJson());
        }
예제 #2
0
        private void btnSend_Click(object sender, EventArgs e)
        {
            if (txtMessage.Text.Trim().Equals(string.Empty))
            {
                return;
            }
            var sendMess  = new TagMessage(MessageType.Sender, txtMessage.Text);
            var emptyMess = new TagMessage(MessageType.Empty, "");

            pnSender.Controls.Add(sendMess);
            pnReceiver.Controls.Add(emptyMess);

            var pket = new Packet("", StatusCode.Chat, txtMessage.Text);

            Program.srvProxy.Notify(pket.ToJson());
            txtMessage.Clear();
        }
예제 #3
0
        private void fClientHome_Load(object sender, EventArgs e)
        {
            if (Program.User == null)
            {
                fLogin flg = new fLogin();
                flg.ShowDialog();
            }
            string stringJson  = Program.srvProxy.GetUserOnline(Program.User.Username);
            var    usersOnline = JsonToListUserClient(stringJson);
            var    pket        = new Packet(
                string.Format("{0} ({1}) just been login", Program.User.Name, Program.User.Username),
                StatusCode.LogIn,
                Program.User.ToJSon()
                );
            var content = pket.ToJson();

            Program.srvProxy.Notify(content);
            AddItems(usersOnline);
        }
예제 #4
0
        // Sends packets to the server asynchronously
        private async Task _sendPacket(Packet packet)
        {
            try
            {                // convert JSON to buffer and its length to a 16 bit unsigned integer buffer
                byte[] jsonBuffer   = Encoding.UTF8.GetBytes(packet.ToJson());
                byte[] lengthBuffer = BitConverter.GetBytes(Convert.ToUInt16(jsonBuffer.Length));

                // Join the buffers
                byte[] packetBuffer = new byte[lengthBuffer.Length + jsonBuffer.Length];
                lengthBuffer.CopyTo(packetBuffer, 0);
                jsonBuffer.CopyTo(packetBuffer, lengthBuffer.Length);

                // Send the packet
                await _msgStream.WriteAsync(packetBuffer, 0, packetBuffer.Length);

                //Console.WriteLine("[SENT]\n{0}", packet);
            }
            catch (Exception) { }
        }