private void run() { while (bRunFlag) { PackVo vo = receivingQManager.poll(); if (vo == null) { if (bRunFlag) { clientThread.heartbeatTimeout(); } continue; } byte op_code = vo.OP_Code; if (op_code == OP_Code.CONFIRM) { clientThread.receiveConfirm(); } else if (op_code == OP_Code.DATA) { clientThread.receiveData(vo.Data); } else if (op_code == OP_Code.REJECT) { clientThread.receiveReject(vo.Data); } } }
private static byte[] writePackVo(byte[] bData, PackVo vo, int iOffset) { bData[iOffset] = vo.OP_Code; int iDataLength = vo.Data.Length; Array.Copy(vo.Data, 0, bData, iOffset + PackerConstant.OP_LENGTH, iDataLength); return(bData); }
private static byte[] writeLength(byte[] bData, PackVo vo, int iOffset) { int iLength = PackerConstant.OP_LENGTH + vo.Data.Length; byte[] bLength = new byte[PackerConstant.LENGTH_LENGTH]; bLength[0] = BitConverter.GetBytes(iLength / PackerConstant.POSITIVE_BYTE_SIZE)[0]; bLength[1] = BitConverter.GetBytes(iLength % PackerConstant.POSITIVE_BYTE_SIZE)[0]; Array.Copy(bLength, 0, bData, iOffset, PackerConstant.LENGTH_LENGTH); return(bData); }
public static byte[] packingData(PackVo vo) { int iTotalLength = PackerConstant.BOU_EOU_LENGTH + PackerConstant.LENGTH_LENGTH + PackerConstant.OP_LENGTH + PackerConstant.BOU_EOU_LENGTH; iTotalLength += vo.Data.Length; byte[] bData = new byte[iTotalLength]; int iOffset = 0; bData = writeBOU(bData, iOffset); iOffset += PackerConstant.BOU_EOU_LENGTH; bData = writeLength(bData, vo, iOffset); iOffset += PackerConstant.LENGTH_LENGTH; bData = writePackVo(bData, vo, iOffset); iOffset += PackerConstant.OP_LENGTH + vo.Data.Length; bData = writeEOU(bData, iOffset); return(bData); }
private void run() { while (bRunFlag) { try { PackVo vo = SimpleConnectDataPacker.unpackingData(socket); receivingQManager.add(vo); } catch (Exception e) { Console.WriteLine(e); // TODO notify ap bRunFlag = false; disconnect(); } } }
public static PackVo unpackingData(Socket socket) { PackVo vo = new PackVo(); readAndCheckUnit(socket, PackerConstant.BOU); int iLength = readLength(socket); byte[] bData = readBytesByLength(socket, iLength); if (readAndCheckUnit(socket, PackerConstant.EOU)) { byte[] bOP_Code = new byte[PackerConstant.OP_LENGTH]; byte[] bVoData = new byte[bData.Length - PackerConstant.OP_LENGTH]; Array.Copy(bData, 0, bOP_Code, 0, PackerConstant.OP_LENGTH); Array.Copy(bData, PackerConstant.OP_LENGTH, bVoData, 0, bVoData.Length); vo.OP_Code = bOP_Code[0]; vo.Data = bVoData; } else { return(unpackingData(socket)); } return(vo); }
public void add(PackVo vo) { queue.Add(vo); }