0

任何人都请帮助我理解这段代码。这是从我从 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 有什么关系?

如果我的理解完全错误,我真的很抱歉,因为套接字不是我的知识。请帮助我更多地了解这一点。

4

1 回答 1

2

这是ServerSocket的accept()方法

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

退货

表示套接字的连接。

这是getInputStream ()

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

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

这是 Java 的教程All About Sockets

于 2012-10-30T08:56:57.023 回答