Example #1
0
 private void lookConnection_Tick(object sender, EventArgs e)
 {
     if (NetManager.client.isConnection)
     {
         btnSecret.Enabled     = true;
         btnSend.Enabled       = true;
         btnConnection.Enabled = false;
         myName.Enabled        = false;
         writeline("Connection successful !!!!!\n");
         lookConnection.Enabled = false;
         return;
     }
     if (NetManager.client.isOpen)
     {
         clsLogin login = new clsLogin(0, Form1.myName.Text);
         Package  data  = new Package((uint)Protocol.LOGIN, login.ToBytes());
         NetManager.toServer.Enqueue(data);
     }
 }
Example #2
0
        public void HandleMessage()
        {
            try
            {
                NetIncomingMessage im;
                string             message = string.Empty;
                Byte[]             Bymessage;

                if ((im = client.ReadMessage()) == null)
                {
                    return;
                }
                //Form1.writeline("GET");

                config.EnableMessageType(NetIncomingMessageType.ConnectionApproval);

                // handle incoming message
                switch (im.MessageType)
                {
                case NetIncomingMessageType.ConnectionApproval:
                case NetIncomingMessageType.DebugMessage:
                case NetIncomingMessageType.ErrorMessage:
                case NetIncomingMessageType.WarningMessage:
                case NetIncomingMessageType.VerboseDebugMessage:
                    break;

                case NetIncomingMessageType.StatusChanged:
                    NetConnectionStatus status = (NetConnectionStatus)im.ReadByte();

                    //Form1.writeline(status.ToString());
                    if (status == NetConnectionStatus.Connected)
                    {
                        isOpen = true;
                    }

                    if (status == NetConnectionStatus.Disconnected)
                    {
                    }
                    break;

                case NetIncomingMessageType.Data:
                    Bymessage = im.ReadBytes(4);
                    Package package = new Package(BitConverter.ToUInt32(Bymessage, 0));
                    //Form1.writeline("[C<--S] " + (Protocol)package.protocol + "[" + (package.protocol).ToString() + "]");
                    int         _length = BitConverter.ToInt32(im.ReadBytes(4), 0);
                    List <byte> _data   = new List <byte>();
                    for (int i = 0; i < _length; i++)
                    {
                        _data.AddRange(im.ReadBytes(1));
                    }
                    package.data = _data.ToArray();
                    if (package.protocol == (uint)Protocol.LOGIN)
                    {
                        clsLogin login = new clsLogin(0, "");
                        login = login.FromBytes(package.data);
                        User user = new User(login.uid, login.userName, null);
                        NetManager.me = user;
                        isConnection  = true;
                    }
                    else
                    {
                        NetManager.toClient.Enqueue(package);
                    }
                    break;

                default:
                    Form1.writeline("Unhandled type: " + im.MessageType + " " + im.LengthBytes + " bytes");
                    break;
                }
                client.Recycle(im);
            }
            catch (Exception e)
            {
                Form1.writeline(e.ToString());
            }
        }