Socket protocol: - Client sends a non-zero length record ID string. - Client sends a series of non-zero-length strings. - Client sends a zero-length string. - Server sends an single acknowledgement byte and closes the socket. That byte will be non-zero for success, or zero on error. Notes: - All numbers are represented as 4-byte binary MSB first. - A "string" above is represented as a length number followed immediately by that many bytes of data. - It is assumed that the client has written the data to a permanent file store (asynchronously) before sending it to the journalling process.