public static void HandlePacket(SocketClient client) { var type = (PacketType) BitConverter.ToInt16(client.PacketBuffer, 0); switch (type) { case PacketType.LoginRequest: LoginRequest.Handel(client, new LoginRequest(client.PacketBuffer), false); break; case PacketType.RegisterRequest: RegisterRequest.Handle(client, new RegisterRequest(client.Buffer)); break; case PacketType.LoginResponse: LoginResponse.Handle(client, new LoginResponse(client.PacketBuffer)); break; case PacketType.ForgotPasswordRequest: ForgotPasswordRequest.Handel(client, new ForgotPasswordRequest(client.PacketBuffer)); break; case PacketType.MaccAddress: MacAddress.Handle(client, new MacAddress(client.PacketBuffer)); break; case PacketType.PlayerAssociation: PlayerAssociation.Handle(client, new PlayerAssociation(client.PacketBuffer)); break; default: Logger.Warning($"Unknown packet type {type} from {client.Handler.RemoteEndPoint} with the length of {BitConverter.ToInt16(client.PacketBuffer, 2)}"); break; } }
public void AcceptCallback(IAsyncResult ar) { // Get the socket that handles the client request. var listener = (Socket) ar.AsyncState; var handler = listener.EndAccept(ar); var client = new SocketClient(handler); handler.BeginReceive(client.Buffer, 0, SocketClient.BufferSize, 0, ReadCallback, client); listener.BeginAccept( AcceptCallback, listener); // Create the state object. }