I updated the protobuf-socket-rpc implementation so it leaves the
connection open, and I was able to get a 4 or 5 times improvement in
the time it takes to run the test. It also solved the problem of
running out of ephemeral ports.

It was necessary to add a length prefix to the request/response
messages in order to remove the dependency on closing the connection
to know when the protobuf was finished being read. Also, since
Message.Builder.mergeFrom() expects to be able to read the InputStream
to the "end", I had to create a FilterInputStream to trick it into
thinking the "end" was the end of the protobuf. The other option would
have been to use the version that accepts a byte array, but that seems
less ideal because it would limit the size of messages that could be

I still need to update the unit tests and do a little bit of cleanup,
but I can make the code available if anyone is interested.
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to