protected RootMessage receive() {
		try {
			// May return null when the socket is closed normally
			return recvDelimited(in);
		}
		catch (IOException e) {
			// Also return null for abnormal closure
			Msg.error(this, "Cannot read packet: " + e);
			flushXReqQueue(e);
			return null;
		}
	}
Create a handler

<p>
Note it is common for this to be constructed by a TCP <em>client</em>.

@param plugin the Trace RMI plugin
@param socket the socket to the back-end debugger
@throws IOException if there is an issue with the I/O streams
Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiHandler.java