当前位置: 首页>>代码示例>>C#>>正文


C# IClient.Send方法代码示例

本文整理汇总了C#中IClient.Send方法的典型用法代码示例。如果您正苦于以下问题:C# IClient.Send方法的具体用法?C# IClient.Send怎么用?C# IClient.Send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IClient的用法示例。


在下文中一共展示了IClient.Send方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ExecuteRequest

        public void ExecuteRequest(IClient client, Packet packetIn)
        {
            Logger.Trace("RPC:Storage:ExecuteRequest()");
            var request = bnet.protocol.storage.ExecuteRequest.ParseFrom(packetIn.Payload.ToArray());
            //Logger.Debug("request:\n{0}", request.ToString());
            
            bnet.protocol.storage.ExecuteResponse response = null;
            switch (request.QueryName)
            {
                case "GetGameAccountSettings":
                    response = GameAccountSettings(request);
                    break;
                case "LoadAccountDigest":
                    response = LoadAccountDigest(request);
                    break;
                case "GetHeroDigests":
                    response = GetHeroDigest(request);
                    break;
                case "GetToonSettings":
                    response = GetToonSettings(request);
                    break;
                default:
                    Logger.Warn("Unhandled ExecuteRequest: {0}", request.QueryName);
                    break;
            }                
            
            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            client.Send(packet);
        }
开发者ID:narutopatel,项目名称:d3sharp,代码行数:32,代码来源:StorageService.cs

示例2: ListFactories

        public void ListFactories(IClient client, Packet packetIn)
        {
            Logger.Trace("RPC:GameMaster:ListFactories()");

            var description = bnet.protocol.game_master.GameFactoryDescription.CreateBuilder().SetId(14249086168335147635);

            var atributes = new bnet.protocol.attribute.Attribute[4]
                                {
                                    bnet.protocol.attribute.Attribute.CreateBuilder().SetName("min_players").SetValue(bnet.protocol.attribute.Variant.CreateBuilder().SetIntValue(2)).Build(),
                                    bnet.protocol.attribute.Attribute.CreateBuilder().SetName("max_players").SetValue(bnet.protocol.attribute.Variant.CreateBuilder().SetIntValue(4)).Build(),
                                    bnet.protocol.attribute.Attribute.CreateBuilder().SetName("num_teams").SetValue(bnet.protocol.attribute.Variant.CreateBuilder().SetIntValue(1)).Build(),
                                    bnet.protocol.attribute.Attribute.CreateBuilder().SetName("version").SetValue(bnet.protocol.attribute.Variant.CreateBuilder().SetStringValue("0.3.0")).Build()
                                };

            description.AddRangeAttribute(atributes);
            description.AddStatsBucket(bnet.protocol.game_master.GameStatsBucket.CreateBuilder()
                                           .SetBucketMin(0)
                                           .SetBucketMax(4294967296F)
                                           .SetWaitMilliseconds(1354)
                                           .SetGamesPerHour(0)
                                           .SetActiveGames(1)
                                           .SetActivePlayers(1)
                                           .SetFormingGames(0)
                                           .SetWaitingPlayers(0).Build());

            var response = bnet.protocol.game_master.ListFactoriesResponse.CreateBuilder().AddDescription(description).SetTotalResults(1).Build();

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            client.Send(packet);
        }
开发者ID:elexor,项目名称:d3sharp,代码行数:33,代码来源:GameMasterService.cs

示例3: Bind

        public void Bind(IClient client, Packet packetIn)
        {
            var request = bnet.protocol.connection.BindRequest.ParseFrom(packetIn.Payload.ToArray());

            // supply service id's requested by client using service-hashes.
            var requestedServiceIDs = new List<uint>(); 
            foreach (var serviceHash in request.ImportedServiceHashList)
            {
                var serviceID = ServiceManager.GetServerServiceIDByHash(serviceHash);
                Logger.Trace("RPC:Bind() - Hash: 0x{0}  ID: {1,4}  Service: {2} ", serviceHash.ToString("X8"), serviceID, ServiceManager.GetServerServiceByID(serviceID) != null ? ServiceManager.GetServerServiceByID(serviceID).GetType().Name : "N/A");
                requestedServiceIDs.Add(serviceID);
            }

            // read services supplied by client..
            foreach (var service in request.ExportedServiceList)
            {
                if (!client.Services.ContainsKey(service.Id))
                    client.Services.Add(service.Id, service.Hash);
            }

            var builder = bnet.protocol.connection.BindResponse.CreateBuilder();
            foreach (var serviceId in requestedServiceIDs) builder.AddImportedServiceId(serviceId);
            var response = builder.Build();

            var packet =
                new Packet(
                    new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint) response.SerializedSize),
                    response.ToByteArray());

            client.Send(packet);
        }
开发者ID:narutopatel,项目名称:d3sharp,代码行数:31,代码来源:BaseService.cs

示例4: ListFactoriesRequest

        public void ListFactoriesRequest(IClient client, Packet packetIn)
        {
            Logger.Trace("RPC:GameMaster:ListFactoriesRequest()");
            //var reqb = bnet.protocol.game_master.ListFactoriesRequest.ParseFrom(packetIn.Payload.ToArray());
            var varib1 = bnet.protocol.attribute.Variant.CreateBuilder();
            varib1.SetIntValue(2);
            var vari1 = varib1.Build();
            var varib2 = bnet.protocol.attribute.Variant.CreateBuilder();
            varib2.SetIntValue(4);
            var vari2 = varib2.Build();
            var varib3 = bnet.protocol.attribute.Variant.CreateBuilder();
            varib3.SetIntValue(1);
            var vari3 = varib3.Build();
            var varib4 = bnet.protocol.attribute.Variant.CreateBuilder();
            varib4.SetStringValue("0.3.0");
            var vari4 = varib4.Build();
            var attrb1 = bnet.protocol.attribute.Attribute.CreateBuilder();
            attrb1.SetName("min_players");
            attrb1.SetValue(vari1);
            var attr1 = attrb1.Build();
            var attrb2 = bnet.protocol.attribute.Attribute.CreateBuilder();
            attrb2.SetName("max_players");
            attrb2.SetValue(vari2);
            var attr2 = attrb2.Build();
            var attrb3 = bnet.protocol.attribute.Attribute.CreateBuilder();
            attrb3.SetName("num_teams");
            attrb3.SetValue(vari3);
            var attr3 = attrb3.Build();
            var attrb4 = bnet.protocol.attribute.Attribute.CreateBuilder();
            attrb4.SetName("version");
            attrb4.SetValue(vari4);
            var attr4 = attrb4.Build();
            var statsb = bnet.protocol.game_master.GameStatsBucket.CreateBuilder();
            statsb.SetBucketMin(0);
            statsb.SetBucketMax(4.2949673e+009f);
            statsb.SetWaitMilliseconds(1000);
            statsb.SetGamesPerHour(0);
            statsb.SetActiveGames(50);
            statsb.SetActivePlayers(60);
            statsb.SetFormingGames(0);
            statsb.SetWaitingPlayers(0);
            var stats = statsb.Build();
            var factb = bnet.protocol.game_master.GameFactoryDescription.CreateBuilder(); // CoopFactoryID - 14249086168335147635 was value on bnet forum error log
            factb.SetId(14249086168335147635);
            factb.AddStatsBucket(stats);
            factb.AddAttribute(attr1);
            factb.AddAttribute(attr2);
            factb.AddAttribute(attr3);
            factb.AddAttribute(attr4);
            var fact = factb.Build();
            var respb = bnet.protocol.game_master.ListFactoriesResponse.CreateBuilder();
            respb.SetTotalResults(1);
            respb.AddDescription(fact);
            var response = respb.Build(); // Seems rescount is optional

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());
            client.Send(packet);
        }
开发者ID:narutopatel,项目名称:d3sharp,代码行数:60,代码来源:GameMasterService.cs

示例5: FileExplorerForm

        public FileExplorerForm(IServerUIHandler UIHandler, IClient c)
        {
            Client = c;
            UIHost = UIHandler;
            InitializeComponent();

            Image uiFolder = UIHandler.GetImage("folder.png");
            Image uiFolder2 = UIHandler.GetImage("folder2.png");
            Image uiFile = UIHandler.GetImage("file.png");
            Image uiDrive = UIHandler.GetImage("drive.png");
            Image uiError = UIHandler.GetImage("error.png");

            if(uiFolder != null)
                images.Images.Add("Folder", uiFolder);
            if (uiFolder2 != null)
                images.Images.Add("Folder2", uiFolder2);
            if (uiFile!=null)
                images.Images.Add("File", uiFile);
            if(uiDrive!=null)
                images.Images.Add("Drive", uiDrive);
            if(uiError != null)
                images.Images.Add("Error", uiError);

            lvFileView.SmallImageList = images;
            lvFileBucket.SmallImageList = images;
            c.Send((byte)NetworkCommand.FileManager, (byte)FileManagerCommand.Update, string.Empty);
        }
开发者ID:Axovera,项目名称:MLRat,代码行数:27,代码来源:FileExplorerForm.cs

示例6: SendResponse

        private static void SendResponse(IClient client, int requestId, IMessage message)
        {
            var packet = new Packet(
                new Header(0xfe, 0x0, requestId, (uint)message.SerializedSize),
                message.ToByteArray());

            client.Send(packet);
        }
开发者ID:superk,项目名称:d3sharp,代码行数:8,代码来源:PacketRouter.cs

示例7: Handle

 public override void Handle(IClient client)
 {
     RealmManager.Instance.PostAsync(mgr =>
     {
         var realms = mgr.GetRealms(x => true);
         client.PostAsync(() => client.Send(RealmPackets.BuildRealmList(realms)));
     });
 }
开发者ID:hanson-huang,项目名称:Encore,代码行数:8,代码来源:RealmListHandler.cs

示例8: StartPing

 public static void StartPing(IClient c)
 {
     if (Handler.ContainsKey(c.ID))
         return;
     Stopwatch sw = new Stopwatch();
     Handler.Add(c.ID, sw);
     c.Send((byte)NetworkCommand.Ping);
     sw.Start();
 }
开发者ID:BahNahNah,项目名称:MLRat,代码行数:9,代码来源:PingHandler.cs

示例9: GetConfiguration

        public void GetConfiguration(IClient client, Packet packetIn)
        {
            Logger.Trace("RPC:Exchange:GetConfiguration()");
            var response = bnet.protocol.exchange.GetConfigurationResponse.CreateBuilder().Build();

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            client.Send(packet);
        }
开发者ID:elexor,项目名称:d3sharp,代码行数:11,代码来源:ExchangeService.cs

示例10: Start

 public static void Start(IClient c)
 {
     if(!formHandler.ContainsKey(c.ID))
     {
         TaskManagerForm f = new TaskManagerForm(c, UIHost);
         f.FormClosed += F_FormClosed;
         formHandler.Add(c.ID, f);
         f.Show();
         c.Send((byte)NetworkCommand.TaskManager, (byte)TaskManagerCommand.GetProcesses);
     }
 }
开发者ID:BahNahNah,项目名称:MLRat,代码行数:11,代码来源:TaskManagerHandler.cs

示例11: ToonListRequest

        public void ToonListRequest(IClient client, Packet packetIn)
        {            
            Logger.Trace("RPC:ToonExternal:ToonListRequest()");
            var response = bnet.protocol.toon.external.ToonListResponse.CreateBuilder().Build();

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            client.Send(packet);
        }
开发者ID:narutopatel,项目名称:d3sharp,代码行数:11,代码来源:ToonExternalService.cs

示例12: HandleRealmlist

        public static void HandleRealmlist(IClient client, IncomingAuthPacket packet)
        {
            Contract.Requires(client != null);
            Contract.Requires(packet != null);

            var unk = packet.ReadInt32(); // ignored

            List<string> realmNames = RealmList.GetRealmNames();

            var realmsSize = 0;
            foreach (string realmName in realmNames)
            {
                Realm realm = RealmList.GetRealm(realmName);
                realmsSize += 3;
                // +1 for the null character at the end
                realmsSize += realm.Name.Length + 1;
                realmsSize += realm.Address.Length + 1;
                realmsSize += 6;
                if ((realm.Color & 4) != 0)
                    realmsSize += 5;
            }

            using (var outPacket = new OutgoingAuthPacket(GruntOpCodes.RealmList, 10 + realmsSize))
            {
                outPacket.Write((short)(6 + realmsSize + 2));
                outPacket.Write(0);
                outPacket.Write((short)realmNames.Count);
                foreach (string realmName in realmNames)
                {
                    Realm realm = RealmList.GetRealm(realmName);
                    var numChars = realm.GetNumChars(client.UserData.SRP.Username);

                    outPacket.Write(realm.Icon);
                    outPacket.Write(realm.Lock);
                    outPacket.Write(realm.Color);
                    outPacket.WriteCString(realm.Name);
                    outPacket.WriteCString(realm.Address);
                    outPacket.Write(realm.PopulationLevel);
                    outPacket.Write(numChars);
                    outPacket.Write(realm.TimeZone);
                    outPacket.Write((byte)0x2C);
                    if ((realm.Color & 0x04) != 0)
                    {
                        outPacket.Write((byte)0);
                        outPacket.Write((byte)0);
                        outPacket.Write((byte)0);
                        outPacket.Write((short)0);
                    }
                }
                outPacket.Write((byte)0x10);
                outPacket.Write((byte)0x00);
                client.Send(outPacket);
            }
        }
开发者ID:chosenmangos,项目名称:Encore,代码行数:54,代码来源:RealmListHandler.cs

示例13: SubscribeToFollowers

        public void SubscribeToFollowers(IClient client, Packet packetIn)
        {
            var response = bnet.protocol.followers.SubscribeToFollowersResponse.CreateBuilder().Build();

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            Logger.Trace("RPC:Followers:Subscribe()");
            client.Send(packet);
        }
开发者ID:narutopatel,项目名称:d3sharp,代码行数:11,代码来源:FollowersService.cs

示例14: OpenColumnRequest

        public void OpenColumnRequest(IClient client, Packet packetIn)
        {
            Logger.Trace("RPC:Storage:OpenColumnRequest()");
            var response = bnet.protocol.storage.OpenColumnResponse.CreateBuilder().Build();

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            client.Send(packet);
        }
开发者ID:narutopatel,项目名称:d3sharp,代码行数:11,代码来源:StorageService.cs

示例15: Subscribe

        public void Subscribe(IClient client, Packet packetIn)
        {
            Logger.Trace("RPC:ChannelInvitation:Subscribe()");
            var response = bnet.protocol.channel_invitation.SubscribeResponse.CreateBuilder().Build();

            var packet = new Packet(
                new Header(0xfe, 0x0, packetIn.Header.RequestID, (uint)response.SerializedSize),
                response.ToByteArray());

            client.Send(packet);
        }  
开发者ID:narutopatel,项目名称:d3sharp,代码行数:11,代码来源:ChannelInvitationService.cs


注:本文中的IClient.Send方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。