несколько сообщений от сервера к клиенту - PullRequest
0 голосов
/ 11 ноября 2019

class client { 
client(String ip, int port){
    try {
        socket = new Socket(ip, port);    
        in = new DataInputStream(socket.getInputStream());
        out = new DataOutputStream(socket.getOutputStream());
         } 
 //...... catch is omitted
    try{
        byte buffer[] = new byte[1024];

        while(true){

            in.read(buffer);
            if(buffer[0]!=0) {break}
            ..............(CODE OMIITED)..............

        }


        }
          ................(CODE OMITTED)..............

        in.close();
        out.close();
        socket.close();

    }
}

Я удалил весь код из-за читабельности моих советников. Дайте мне знать, если кому-то нужен более подробный код, чтобы помочь мне.

Итак, мой сервер отправляет два раза out.write (буфер) (DataOutputStram) в течение одного цикла while. например, первый - буфер [] = [0, 1, 1, 3, 4, 5], а второй - буфер [] = [8, 1, 1, 1, 1, 1], затем то, что я хочуread from in.read - это два разных буфера (сначала прочитайте один в клиентский буфер, а затем перезапишите следующий [8,1,1,1,1,1] в следующем цикле цикла. Но иногда это дает мне правильное два разных значения (правильноперезаписать), но иногда in.read просто дает мне [0,1,1,3,4,5,8,1,1,1,1,1]

Может кто-нибудь сказать мне, как обеспечитьв in.read только для чтения часть, которая мне нужна. Я пытался использовать in.read (буфер, 0, длина), но мне не удалось

...