了解代码片段IP Camera for android

时间:2012-10-30 08:51:48

标签: java android sockets nanohttpd

任何人都可以帮我理解这段代码。这是从我从googlecode获取的android的IPCamera中获取的。我想弄清楚的代码是:

public NanoHTTPD( int port, File wwwroot ) throws IOException
    {
        myTcpPort = port;
        this.myRootDir = wwwroot;
        myServerSocket = new ServerSocket( myTcpPort );
        myThread = new Thread( new Runnable()
            {
                public void run()
                {
                    try
                    {
                        while( true )
                            new HTTPSession( myServerSocket.accept());
                    }
                    catch ( IOException ioe )
                    {}
                }
            });
        myThread.setDaemon( true );
        myThread.start();
    }

private class HTTPSession implements Runnable
    {
        public HTTPSession( Socket s )
        {
            mySocket = s;
            Thread t = new Thread( this );
            t.setDaemon( true );
            t.start();
        }

        public void run()
        {
            try
            {
                InputStream is = mySocket.getInputStream();
                if ( is == null) return;

我想知道的事情。请告诉我,如果我理解错误:

1- myServerSocket.accept()此代码将返回什么?布尔值,如果为真或假?

2- InputStream is = mySocket.getInputStream();输入流是获取字节流。但该程序在mySocket上读到了什么。根据我的理解,它读取端口号。与mySocket有什么关系来获取字节?

我真的很抱歉,如果我的理解是完全错误的,因为socket不是我的知识。请帮助我了解更多相关信息。

1 个答案:

答案 0 :(得分:2)

这是ServerSocket的accept() method

  

等待传入的请求并阻塞,直到连接打开。

  

返回

     

表示套接字的连接。

这里是getInputStream()

  

返回从此套接字读取数据的输入流。

您可能想要阅读套接字和流。

这是Java的教程All About Sockets