刷新后未发送Java套接字

时间:2018-12-13 20:33:47

标签: java ios sockets protocol-buffers

我正在尝试向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();

0 个答案:

没有答案