gpt4 book ai didi

java - java中的Socket.getInputStream().read()方法会做什么?

转载 作者:行者123 更新时间:2023-12-01 19:15:15 25 4
gpt4 key购买 nike

我有这样的代码:

class ConnectionHandler implements Runnable {

private Socket socket;
private InputStream is;
private OutputStream os;
private Packetizer packetizer;
boolean closed = true;

public ConnectionHandler(Socket socket, ProtocolHandler ph) {
this.socket = socket;
try {
is = socket.getInputStream();
os = socket.getOutputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Thread t = new Thread(this);
t.start();
//log.debug("ConnectionHandler const done");
}

public void run() {
try
{
//
// Read a message sent by client application
//

closed = false;
while (!closed)
{
if (is.available() > 0)
{
byte c = (byte) (0xff & is.read());
//log.debug("r " + c);

} else {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
}
}

is.close();
os.close();
socket.close();

} catch (IOException e) {
}
}

我的问题是这个有什么用 -> byte c = (byte) (0xff & is.read());

请告诉我你的想法。

请帮帮我。提前致谢。

最佳答案

它将从套接字读取一个字节的数据。 0xff & ... 部分在这里是不必要的(或者实际上是一个坏主意),因为 InputStream.read 只会返回 0-255 范围内的值,除非它是实际上到达了数据末尾,在这种情况下它返回 -1。

(通常0xff & ...用于将有符号byte值转换为无符号int值。这里的输入是一个int,而结果是一个byte变量...)

关于java - java中的Socket.getInputStream().read()方法会做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6958297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com