Отправка больших строк с помощью сокетов - Java - PullRequest
0 голосов
/ 25 декабря 2018

что я пытаюсь сделать, это отправить строки размером более 60 КБ, которые не могут быть отправлены с помощью метода WriteUTF с использованием DataOutputStream

, поэтому, в основном, я уже закончил с поиском, и добавив свои собственные знания, он преобразовывалстрока в байты с использованием метода getBytes ("UTF-8") и для преобразования его обратно в строку я использовал новую строку ("UTF-8"), но когда я начинаю отправлять данные на мой сервер (который должен ответить мне строкой)который также преобразуется в байты с использованием того же tec) после подготовки потоков (DataInputStream и DataOutputStream), они в то время как цикл чтения данных никогда не заканчивается

Мой сервер:

DataInputStream dataInputStream = new 
DataInputStream(sslSocket.getInputStream());
                        DataOutputStream dataOutputStream = new 
DataOutputStream(sslSocket.getOutputStream());

                        byte[] bdata = new byte[1024];

                        while(dataInputStream.read(bdata, 0 , bdata.length) > 0){
                            returnData.append(new String(bdata, Charset.forName("UTF-8")));
                        }

                        String command = returnData.toString();
                        dataOutputStream.write(returnData.toString().getBytes("UTF-8"), 0, returnData.toString().getBytes().length);

Мой клиент:

        dataOutputStream.write(command.getBytes("UTF-8"), 0, command.getBytes().length);
        byte[] data = new byte[1024];
        while(dataInputStream.read(data, 0, data.length) > 0){
            stringBuilder.append(new String(data, Charset.forName("UTF-8")));
        }
And then use stringBuilder.toString() to get the data out of the builder.

не могу понять почему, но вот мой код, я надеюсь, вы можете помочь мне с этим:

...