我正在尝试向Protobuf
设备上的socket server
发送消息(使用iOS
)。关闭套接字后,我只能收到要发送的消息。
我相信这是因为buffer
仅在套接字关闭时真正被刷新了。
我想我已尽一切努力确保不是这种情况。但是,我一定会丢失一些东西。
这是我的代码。
Socket socket = new Socket("::1", 1337);
OutputStream out = socket.getOutputStream();
//this is my generated protobuf class
Wire.Envelope message = Wire.Envelope.newBuilder().setType(Wire.MessageType.GET_DEVICE_DETAILS).setId(69).setMessage(Wire.GetDeviceDetailsRequest.newBuilder().build().toByteString()).build();
socket.setSendBufferSize(message.getSerializedSize());
System.out.println("Send buffer size: " + socket.getSendBufferSize());
message.writeDelimitedTo(out);
socket.setTcpNoDelay(true);
out.flush();