在java中,Socket.getInputStream().read()方法将执行什么操作?
我有这样一个代码:在java中,Socket.getInputStream().read()方法将执行什么操作?,java,sockets,Java,Sockets,我有这样一个代码: 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) {
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) {
}
}
我的问题是这个->字节c=(byte)(0xff&is.read())的用途是什么
请让我知道你的想法
请帮帮我。提前感谢。它将从套接字读取一个字节的数据。
0xff&…
部分在这里是不必要的(或者实际上是个坏主意),因为InputStream.read
将只返回一个范围为0-255的值,除非它实际到达了数据的末尾,在这种情况下它返回-1
(通常
0xff&…
用于将有符号的字节
值转换为无符号的int
值。这里的输入是int
,结果是一个字节
变量…它将从套接字读取一个字节的数据。0xff&…
部分在这里是不必要的(或者实际上是个坏主意),因为InputStream.read
将只返回一个范围为0-255的值,除非它实际到达了数据的末尾,在这种情况下它返回-1
(通常0xff&…
用于将有符号的字节
值转换为无符号的int
值。这里的输入是int
,结果是字节
变量…)