Обычно, когда я используюбайт эквивалентно сократить ссылку сокета
r = new BufferedReader(new InputStreamReader(receivedSocketConn1.getInputStream()));
то я использую
int nextChar = 0;
while ((nextChar=r.read()) != -1)
{
}
Теперь я собираюсь использовать побайтово
r = new DataInputStream(new BufferedInputStream(receivedSocketConn1.getInputStream()));
поэтому первым байт Я читаю это
try {
while(true){
if (r.readByte() != 0x7E) // start byte
{
// ah oh, something went wrong!!
receivedSocketConn1.close();
return;
}
int bodyLen = r.readUnsignedShort(); // message body nature (body length)
byte serialNum1 = r.readByte();// message serial number
byte[] messageBody = new byte[20]; // message body
r.readFully(messageBody);
if (r.readByte() != 0x7E) // end byte
{
// ah oh, something went wrong!!
receivedSocketConn1.close();
return;
}
}
}
catch (SocketTimeoutException ex)
{
System.out.println("SocketTimeoutException has been caught");
ex.printStackTrace();
}
catch (IOException ex)
{
System.out.println("IOException has been caught");
ex.printStackTrace();
}
finally
{
try
{
if (w != null)
{
w.close();
r.close();
receivedSocketConn1.close();
}
else
{
System.out.println("MyError:w is null in finally close");
}
}
}
Вы видите, что он всегда идет в блок finally
после того, как я делаю 7e
, после чего он разрезает ссылку. Я хотел бы сохранить ссылку в течение некоторого времени. Но до этого я хочу запустить цикл for
для поиска -1
в этом сценарии. Как это реализовать?
Вы хотите посмотреть на конец потока * до * ищет 0x7E? – EJP
Да EJP Мне нужен эквивалент -1 в этом методе?Мне нужно начать чтение с 7Е до 7Е, что будет моими полными данными, но мне нужно поддерживать ссылку. – user5313398
Почему этот пост голосует, что в этом плохого? Я действительно не вижу никакой ошибки, я показал свое усилие, что я сделал, и где я застрял – user5313398