function sendMessage(&$message) { if (!$this->ConSock) { debug(sprintf("Socket is not valid\n")); return false; } debug(sprintf("sendMessage : message Buffer is '%d'<br>\n", $message->Pos)); debug(sprintf("sendMessage : message Buffer is '%d'<br>\n", strlen($message->Buffer))); $hd = new CMemStream(); debug(sprintf("SendMessage number %u<br>", $this->MsgNum)); $hd->serialUInt32($this->MsgNum); // number the packet $this->MsgNum += 1; debug(sprintf("After SendMessage, number %u<br>", $this->MsgNum)); $messageType = 0; $hd->serialUInt8($messageType); $hd->serialString($message->MsgName); debug(sprintf("sendMessage : header size is '%d'<br>\n", $hd->Pos)); // $sb .= $message->Buffer; $size = $hd->Pos + $message->Pos; $Buffer = (string) chr($size >> 24 & 0xff); $Buffer .= chr($size >> 16 & 0xff); $Buffer .= chr($size >> 8 & 0xff); $Buffer .= chr($size & 0xff); debug("E" . gettype($hd->Buffer) . "<br>"); debug("F" . gettype($message->Buffer) . "<br>"); $Buffer .= (string) $hd->Buffer; $Buffer .= (string) $message->Buffer; debug("G" . gettype($this->ConSock) . "<br>"); if (!fwrite($this->ConSock, $Buffer)) { debug(sprintf("Error writing to socket\n")); return false; } debug(sprintf("sent packet size '%d' (written size = %d) <br>\n", strlen($Buffer), $size)); fflush($this->ConSock); return true; }