Java Socket не отправляется после сброса - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь отправить сообщение (используя 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...