public void ReceiveThread() { while (IsActive && socket.Connected) { try { byte[] buffer = new byte[4]; for (int i = 0; i < 10; i++) { uint pid = BitConverter.ToUInt32(ReadWait(stream.baseStream, 4), 0); uint len = BitConverter.ToUInt32(ReadWait(stream.baseStream, 4), 0); byte[] data = ReadWait(stream.baseStream, (int)len); qLuaPacket packet = new qLuaPacket(pid); packet.data = data; packet.sender = this; receiveQueue.Enqueue(packet); } } catch (Exception ex) { plugin.log.Info("qlay->socket", "Net msg " + ex.Message); } Thread.Sleep(1); } }
public void Send(qLuaPacket packet) { if (IsActive) { MemoryStream memoryStream = packet.stream.baseStream as MemoryStream; packet.data = memoryStream.ToArray(); sendQueue.Enqueue(packet); } }
public DynValue Packet(uint id) { qLuaPacket packet = new qLuaPacket(id); return(UserData.Create(packet)); }