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


C# ByteBuffer.length方法代码示例

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


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

示例1: Adler32

 public static uint Adler32(ByteBuffer data, uint start, uint len)
 {
     if (start >= data.length())
     {
         start = (uint) data.length();
     }
     if (len == 0)
     {
         len = ((uint) data.length()) - start;
     }
     if ((len + start) > data.length())
     {
         len = ((uint) data.length()) - start;
     }
     uint index = start;
     uint num2 = 1;
     uint num3 = 0;
     while (index < (start + len))
     {
         num2 = (num2 + data.toArray()[index]) % 0xfff1;
         num3 = (num2 + num3) % 0xfff1;
         index++;
     }
     return ((num3 << 0x10) | num2);
 }
开发者ID:hebbaixue99,项目名称:XJDemoServer,代码行数:25,代码来源:ChecksumUtil.cs

示例2: transToClientData

    private static bool transToClientData(TransCenterSockets tcs)
    {
        Log.Info ( getSocketStr(tcs.socketServer)+ tcs.socketServer.Available);
        ByteBuffer data = new ByteBuffer (tcs.socketServer.Available);
        data.setTop (tcs.socketServer.Available);
        tcs.socketServer.Receive (data.getArray (), SocketFlags.None);

            tcs.transPortClient.isServer = false;
            try {

                CallBack cb = delegate {
                    data.position = 0;
                    tcs.socketClient.Send (data.getArray ());
                };
                tcs.transPortClient.erlConnect.transCallBack = null;
                tcs.transPortClient.dataBuffer = data.Clone () as ByteBuffer;
                tcs.transPortClient.receive (data, false);

                if (data.length () == 10) {
                    data.position = 0;
                    tcs.transPortServer.isServer = true;
                    tcs.transPortServer.dataBuffer = data.Clone () as ByteBuffer;
                    tcs.transPortServer.receive (data, true);
                }

            } catch (Exception e) {
                Log.Error (e.Message);
            } finally {

                //Log.Info ("+++++" + ports + "+++++++++++");
                //if (ports!=5) {

                //}
            }

        return false;
    }
开发者ID:hebbaixue99,项目名称:XJDemoServer,代码行数:37,代码来源:TransCenter.cs

示例3: createDataByHead

 protected override ByteBuffer createDataByHead(ByteBuffer head)
 {
     ByteBuffer buffer = new ByteBuffer ();
     int b = (((0 | (this._encryption << 3)) | (this._crc << 2)) | (this._compress << 1)) | this._kv;
     buffer.writeShort (head.length () + 1);
     buffer.writeByte (b);
     buffer.writeBytes (head.toArray ());
     return buffer;
 }
开发者ID:hebbaixue99,项目名称:XJDemoServer,代码行数:9,代码来源:ErlConnect.cs

示例4: sendErl

    public void sendErl(ByteBuffer data, int encryption, int crc, int compress, int kv)
    {
        if ((this._sendChallengeCode != null) && (this._sendChallengeCode.Length >= 0)) {
            this._encryption = encryption;
            this._crc = crc;
            this._compress = compress;
            this._kv = kv;
            int i = 0;
            ByteBuffer buffer = new ByteBuffer ();
            if ((this._compress == 1) && (data.length () >= 0x40)) {
                data = new ByteBuffer (ZIPUtil.Compress (data.toArray ()));
            } else {
                this._compress = 0;
            }
            if ((this._crc == 1) && (this._compress == 0)) {
                i = (int)ChecksumUtil.Adler32 (data);
                buffer.writeInt (i);
            } else {
                this._crc = 0;
            }
            buffer.writeBytes (data.toArray ());
            if (this._encryption == 1) {
                if (!this.isServer) {
                    buffer = this.encryptionCode (buffer, this._receiveChallengeCode);
                    /*string code = "";
                    foreach(int sc in this._receiveChallengeCode)
                    {
                        code = code + sc ;
                    }
                    //Log.Info("---this._receiveChallengeCode="+ code);
                     */
                } else {
                    buffer = this.encryptionCode (buffer, this._sendChallengeCode);
                    /*string code = "";
                    foreach(int sc in this._sendChallengeCode)
                    {
                        code = code + sc ;
                    }
                    Log.Info("---this._sendChallengeCode="+ code);
                     */
                }

                //buffer = this.encryptionCode (buffer, this._receiveChallengeCode);
            }
            base.send (buffer);
            //Log.Info(string.Concat(buffer.getArray()));
            this._encryption = 1;
            this._crc = 1;
            this._compress = 1;
            this._kv = 1;
        }
    }
开发者ID:hebbaixue99,项目名称:XJDemoServer,代码行数:52,代码来源:ErlConnect.cs

示例5: createDataByHead

 protected virtual ByteBuffer createDataByHead(ByteBuffer body)
 {
     int len = body.length();
     ByteBuffer data = new ByteBuffer();
     ByteKit.writeLength(data, len);
     data.writeBytes(body.toArray());
     return data;
 }
开发者ID:hebbaixue99,项目名称:XJDemoServer,代码行数:8,代码来源:Connect.cs

示例6: send

 public void send(ByteBuffer data)
 {
     if (this._active)
     {
         data = this.createDataByHead(data);
         //Log.info(data.toArray().Length);
         this.send(data.toArray(), 0, data.length());
     }
 }
开发者ID:hebbaixue99,项目名称:XJDemoServer,代码行数:9,代码来源:Connect.cs


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