示例#1
0
文件: Client.cs 项目: rvnijnatten/IP2
 public Client(TcpClient client, ServerControl sControl)
 {
     this.isDoctor = false;
     this.serverControl = sControl;
     this.tcpClient = client;
     this.listenThread = new Thread(new ThreadStart(handler));
     this.listenThread.Start();
 }
示例#2
0
        ///<summary>
        ///Handles datapackets received by clients.
        ///</summary>
        public static void getPacket(ServerControl serverControl, Client client, Packet pack)
        {
            switch (pack.Flag)
            {
                case Packet.PacketFlag.PACKETFLAG_VALUES:
                    serverControl.writeToModel(client, (Value)pack.Data);
                    serverControl.ForwardedValuePacket(client, pack);
                    break;

                case Packet.PacketFlag.PACKETFLAG_CHAT:
                    serverControl.forwardMessage(pack, client);
                    break;

                case Packet.PacketFlag.PACKETFLAG_BIKECONTROL:
                    serverControl.forwardBikeCommand(pack);
                    break;

                case Packet.PacketFlag.PACKETFLAG_REQUEST_HANDSHAKE:
                    setUsernamePassword(client, pack);
                    serverControl.handshakeResponse(client, (Handshake)pack.Data);
                    break;

                case Packet.PacketFlag.PACKETFLAG_REQUEST_VALUES:
                    client.sendHandler(serverControl.requestSpecifiedClientData((RequestValue)pack.Data));
                    break;
                case Packet.PacketFlag.PACKETFLAG_REQUEST_USERLIST:
                    client.sendHandler(serverControl.getOnlineClientListPacket());
                    break;
                case Packet.PacketFlag.PACKETFLAG_WINGATE_RESULT:
                    serverControl.WingateResult(pack);
                    break;
                case Packet.PacketFlag.PACKETFLAG_REQUEST_ALL_WINGATE:
                    serverControl.ResponseWingate(client);
                    break;
                case Packet.PacketFlag.PACKETFLAG_REQUEST_SPECIFIC_WINGATE:
                    serverControl.ResponseWingate(client, pack);
                    break;
                default:
                    Console.WriteLine("Error: unhandled Packet received - {0}", pack.Flag);
                    break;
            }
        }