本文整理汇总了C#中ByteBuffer.write方法的典型用法代码示例。如果您正苦于以下问题:C# ByteBuffer.write方法的具体用法?C# ByteBuffer.write怎么用?C# ByteBuffer.write使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ByteBuffer
的用法示例。
在下文中一共展示了ByteBuffer.write方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: parseMessage
public void parseMessage(ByteBuffer socketbuffer)
{
int num = socketbuffer.readByte ();
bool flag = (num & 8) != 0;
bool flag2 = (num & 4) != 0;
bool flag3 = (num & 2) != 0;
ByteBuffer data = new ByteBuffer (this.length - 1);
data.write (socketbuffer.toArray (), 0, this.length - 1);
if (base.socket.Available >= 2) {
byte[] buffer = new byte[2];
base.socket.Receive (buffer, SocketFlags.None);
this.length = ByteKit.readUnsignedShort (buffer, 0);
} else {
this.length = 0;
}
if (flag) {
data = this.encryptionCode (data, this._receiveChallengeCode);
}
if (flag3) {
data = new ByteBuffer (ZIPUtil.Decompress (data.toArray ()));
}
if (flag2) {
int num2 = data.readInt ();
ByteBuffer buffer4 = new ByteBuffer ();
buffer4.writeBytes (data.toArray (), 0, data.top - data.position);
int num3 = (int)ChecksumUtil.Adler32 (buffer4);
if (num2 != num3) {
//MonoBehaviour.print(string.Concat(new object[] { "crc is err,crcValue", num2, ",nowCrc=", num3 }));
// Log.info
return;
}
}
ErlKVMessage message = new ErlKVMessage (null);
message.bytesRead (data);
if (base._portHandler != null) {
base._portHandler.erlReceive (this, message);
}
}
示例2: TransParseMessage
public void TransParseMessage(ByteBuffer socketbuffer , bool isServer , ByteBuffer src)
{
try{
int num = socketbuffer.readByte ();
bool flag = (num & 8) != 0;
bool flag2 = (num & 4) != 0;
bool flag3 = (num & 2) != 0;
ByteBuffer data = new ByteBuffer (this.length - 1);
data.write (socketbuffer.toArray (), 0, this.length - 1);
if ((this.dataBuffer.bytesAvailable) >= 2) {
byte[] buffer = new byte[2];
//base.socket.Receive (buffer, SocketFlags.None);
this.dataBuffer.readBytes(buffer,0,2);
this.length = ByteKit.readUnsignedShort (buffer, 0);
} else {
this.length = 0;
}
if (flag) {
if (this.isServer) {
data = this.encryptionCode (data, this._sendChallengeCode);
} else {
data = this.encryptionCode (data, this._receiveChallengeCode);
}
}
if (flag3) {
data = new ByteBuffer (ZIPUtil.Decompress (data.toArray ()));
}
if (flag2) {
int num2 = data.readInt ();
ByteBuffer buffer4 = new ByteBuffer ();
buffer4.writeBytes (data.toArray (), 0, (int)data.bytesAvailable);
int num3 = (int)ChecksumUtil.Adler32 (buffer4);
if (num2 != num3) {
Log.Error(string.Concat(new object[] { "crc is err,crcValue", num2, ",nowCrc=", num3 }));
// Log.info
//if (this.transCallBack != null) {
// this.transCallBack.Invoke ();
// }
int len = (int)this.dataBuffer.bytesAvailable;
int pos = this.dataBuffer.position;
byte[] tmp = new byte[len];
byte[] bak = new byte[pos];
this.dataBuffer.position = 0;
this.dataBuffer.readBytes (bak, 0, pos);
this.dataBuffer.readBytes (tmp, 0, len);
this.dataBuffer.clear ();
this.dataBuffer = new ByteBuffer (tmp);
if(!this.isServer){
base.socket.Send (bak);}
if (this.dataBuffer.bytesAvailable > 0) {
this.TransReceive (null, this.isServer);
}
return;
}
}
ErlKVMessage message = new ErlKVMessage (null);
this.tmpBuffer = data;
message.bytesRead (data);
Log.Debug(string.Concat( data.getArray())+"++++++");
this.myLen = this.dataBuffer.top;
if (base._portHandler != null) {
base._portHandler.erlReceive (this, message);
}
}
catch(Exception e) {
Log.Error (e.Message);
if (this.dataBuffer.bytesAvailable > 0) {
this.TransReceive (null, this.isServer);
} else {
int len = (int)this.dataBuffer.bytesAvailable;
int pos = this.dataBuffer.position;
byte[] tmp = new byte[len];
byte[] bak = new byte[pos];
this.dataBuffer.position = 0;
this.dataBuffer.readBytes (bak, 0, pos);
this.dataBuffer.readBytes (tmp, 0, len);
this.dataBuffer.clear ();
this.dataBuffer = new ByteBuffer (tmp);
if (!this.isServer) {
base.socket.Send (bak);
}
if (this.dataBuffer.bytesAvailable > 0) {
this.TransReceive (null, this.isServer);
}
}
}
}