Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,Socket.getInputStream().read()方法将执行什么操作?_Java_Sockets - Fatal编程技术网

在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
,结果是
字节
变量…)