Я пытаюсь отправить сообщение (используя 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();