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()このコードは何を返しますか? true または false のようなブール値?

2-InputStream is = mySocket.getInputStream();入力ストリームは、バイト ストリームを取得することです。しかし、プログラムが mySocket で読み取ったもの。私が理解していることから、それはポート番号を読み取ります。バイトを取得するためにmySocketと関係があるのは何ですか?

ソケットは私の知識ではないので、私の理解が完全に間違っていたら本当に申し訳ありません。これについてもっと理解するのを手伝ってください。

4

1 に答える 1

2

ServerSocket のaccept() メソッドは次のとおりです。

着信要求を待機し、接続が開かれるまでブロックします。

戻り値

ソケットを表す接続。

そして、ここにgetInputStream()があります

このソケットからデータを読み取るための入力ストリームを返します。

ソケットとストリームについて読みたいと思うかもしれません。

これは Java のチュートリアルAll About Socketsです。

于 2012-10-30T08:56:57.023 に答える