参考答案和解析
答案:错
更多“客户端的程序使用ServerSocket类建立到服务器的套接字连接。() ”相关问题
  • 第1题:

    阅读以下说明、Java源程序和运行测试部分,将应填入(n)处的解答写在对应栏中。

    1. HTTP 协议

    HTTP请 求消息示例

    GET/index, htmIHTTP/1.1

    Accept: image/gif, image/jpeg, */*

    Accept-Language: zh-ch

    Accept-encoding: gzip, deflate

    User-Agent: Mozilla/4.0 (compatible; MSIE6.0; Windows NT5.1)

    Host: IocaIhost: 8080

    Connection: Keep-Alive

    HTTP/1.1 200 OK

    Servert: Microsoft-IIS/4.0

    Date: Mon, 3 Jan 1998 13:13:33 GMT

    Content-Type: text/html

    Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT

    Contelit-Length: 112

    < html >

    2.相关类及主要成员函数

    ServerSocket类:

    服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象。类中的主要成员函数见表1。

    基于连接的套接字。类中的主要成员函数见表2。

    [Java源程序;一个简单的web服务器]

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

    /*WebScrvc. java */

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

    packageobjclass;

    importjaVa. net. *;

    importjaVa. io. *;

    public class WebServer{

    //web服务器侦听的端口号

    public static final int PORT=8080;

    //WEB-ROOT变量存放web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源

    public static final String WEB-ROOT=

    Systern. getProperty("user.dir")+File. separator+"webmot";

    //SHUTDOWN_COMMAND变量保存关闭服务器的命令

    private static final string SHUTDOWN_COMMAND="/shutdown";

    //是否收到关闭服务器命令的标志

    private boolean Shutdown=false;

    public static void main(Sting[]args){

    WebServerserver; newWebserver( );

    Server.await( );

    }

    public void await( ){

    ServerSocke serverSocke=null;

    try{

    //创建侦听端口号为PORT的ServerSocket类型的对象

    ServerSocket=new(1);

    System. out. println("WebServerStarted!");

    !

    catch(IOException e){

    e.printStackTrace( );

    System.exit (1);

    }

    //循环等待客户端连接

    While(!Shutdown){

    Socket socket=null;

    InputStream input=null;

    OutputStream output=null;

    try{

    //创建来自客户端的连接套接宇

    Socket=(2);

    //创建输入流

    input=socket. (3);

    //创建输出流

    Output=socket. (4);

    //创建request对象

    Request request=new Request(input);

    //解析客户端HTTP请求

    request, parse( );

    //创建Response 对象

    Response response=new (5);

    //将 request 对象传递给 response 对象

    response. setRequest(request);

    //给客户端发送所请求的静态资源

    response. (6);

    //关闭连接套接字

    (7);

    //判断当前HTTP 请求中的URI是否是关闭服务器命令

    shutdown-request. getUri( ). equals(SHUTDOWN_COMMAND);

    Catch (Exception e) {

    e. (8);

    continue;

    }

    }

    }

    }

    / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

    / * Request. java * /

    / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

    package objclass;

    import java.io.InputStream;

    import java.io.IOEexception;

    public Class Request{

    private InputStream input;

    private String uri;


    正确答案:(1)ServerSocket(PORT)或ServerSocket(PORT1InetAddress.getByName (“127.0.0.1”)) (2)serverSocket. accept( ) (3)8etlnputStream( ) (4)getOutputStream( ) (5)Response(output( ) (6)sendStaticResource( ) (7)socket. close( ) (8)printStackTrace( ) (9)hnp://localhost:8080/index.html或http://127.0.0.1:8080/ index.html. (10)http://localhost:8080/shutdown或http://127.0.0.1: 8080/Shutdo
    (1)ServerSocket(PORT)或ServerSocket(PORT,1,InetAddress.getByName (“127.0.0.1”)) (2)serverSocket. accept( ) (3)8etlnputStream( ) (4)getOutputStream( ) (5)Response(output( ) (6)sendStaticResource( ) (7)socket. close( ) (8)printStackTrace( ) (9)hnp://localhost:8080/index.html或http://127.0.0.1:8080/ index.html. (10)http://localhost:8080/shutdown或http://127.0.0.1: 8080/Shutdo

  • 第2题:

    阅读以下技术说明、Java源程序和运行测试部分,根据要求回答问题1和问题2。

    【说明】

    1.HTTP

    ◆ HTTP请求消息示例

    GET/index,htmlHTTP/1.1

    Accept:image/gif,image/jpeg,*/*

    Accept-Language:zh-ch

    Accept-encoding:gzip,deflate

    User-Agent:Mozilla/4.0(compatible: MSIE6.0;Windows 2003)

    Host:localhost:8080

    Connection:Keep-Alive

    ◆ HTTP响应消息示例

    HTTP/1.1 200 OK

    Servert:Microsoft-IIS/6.0

    Date:Mon,3 Jan 2008 13:13:33 GMT

    Content-Type:text/html

    Last-Modified:Mon,11 Jan 2008 13:23:42 GMT

    Contelit-Length:112

    <html>

    ...

    </html>

    2.相关类及主要成员函数

    ◆ ServerSocket类

    服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象,类中的主要成员函数如表6-16所示。

    ◆Socket类 基于连接的套接字,类中的主要成员函数如表6-17所示。

    【Java源程序:一个简单的Web服务器】

    /* WebScrvc.java */

    packageobjclass;

    import java.net.*;

    import java.io.*;

    public class WebServer{

    public static final int PORT=8080; //Web服务器侦听的端口号

    public static final String WEB_ROOT= SyStem.getProperty("user.dir")+

    File.separator+"webroot";

    //WEB_ROOT变量存放Web服务器工作目录,HTML, GIF图片等静态文件资源

    private static final String SHUTDOWN_COMMAND="/shutdown";

    //SHUTDOWN_COMM_AND变量保存关闭服务器的命令

    private Boolean shutdown=false; //是否收到关闭服务器命令的标志

    public static void main(Sting[] args) {

    WebServer server=new WebServer();

    Server.await ()

    }

    public void await() {

    ServerSocket serverSocket = null;

    try {

    serverSocket = new (1);

    //创建侦听端口号为PORT的ServerSocket类型的对象

    System.out.println ("WebServerStarted!");

    }

    catch(IOException e) {

    e.printStackTrace ();

    SyStem. exit (1);

    }

    while(!shutdown) { //循环等待客房端连接

    Socket socket = null;

    InputStream input = null;

    OutputStream utput = null;

    try{

    Socket =(2); //创建来自客房端的连接套接字

    Input = socket.(3); //创建输入流

    utput = socket.(4); //创建输出流

    Request reque


    正确答案:(1)ServerSocket(PORT)或serverSicket(PORT1InetAddress.getByName(“127.0.0.1”)) (2)serverSocket.accept()或其等价的带参数形式 (3)getInputStream()或其等价的带参数形式 (4)getOutputStream()或其等价的带参数形式 (5)parse()或其等价的带参数形式 (6)sendStaticResource()或其等价的带参数形式 (7)socket.close() (8)getUrl()
    (1)ServerSocket(PORT)或serverSicket(PORT,1,InetAddress.getByName(“127.0.0.1”)) (2)serverSocket.accept()或其等价的带参数形式 (3)getInputStream()或其等价的带参数形式 (4)getOutputStream()或其等价的带参数形式 (5)parse()或其等价的带参数形式 (6)sendStaticResource()或其等价的带参数形式 (7)socket.close() (8)getUrl() 解析:这是一道要求读者掌握Socket通信的基本模型和Java的基本调用方法的综合分析题。本题的解答思路如下。
    基于Socket的客户/服务器通信模式的基本模型。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Server Model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于两点:①建立计算机网络的原因是网络中软硬件资源运算能力和信息不均等,需要进行资源共享,从而需要拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用;②网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,也不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步。
    客户/服务器模式在操作过程中采取的是主动请求方式。首先,服务器方要先启动,并根据请求提供相应服务。服务器方的操作过程如下。
    1)打开一通信通道并告知本地主机,它愿意在某一公认地址上(即默认端口,如HTTP为80)接收客户请求;
    2)等待客户请求到达该端口:
    3)接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新进程来处理这个客户请求,新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止:
    4)返回第2)步,等待另一客户请求:
    5)关闭服务器。
    客户方的操作过程如下。
    1)打开一个通信通道,并连接到服务器所在主机的特定端口:
    2)向服务器发送服务请求报文,等待并接收应答,继续提出请求;
    3)请求结束后关闭通信通道并终止。
    从以上C/S操作过程可知,客户与服务器进程的作用是非对称的,因此双方各自的编码不同;服务进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。
    由于本试题没有给出完整的Java服务程序代码,因此需要考生对Socket通信的基本过程理解,要求熟悉Socket传送数据的基本方法。程序给出了对Response和Request对象的定义和两个对象的方法定义,但是方法的具体功能一定要注意看语句后面的注释,(1)~(8)空缺处所填写的内容也来自于后面注释的信息。另外,由于Java程序是区分大小写的,因此一定要弄清楚什么地方指的是类,什么地方是类的实例。因为类和类的实例的拼写通常就只有大小写的区别。
    第(1)空缺处要求创建侦听端口号为PORT的ServerSocket类型的对象,那么只要调用ServerSocket类的构造函数就可以了,具体的参数可以参照表6-16中ServerSocket类构造函数的格式调用。因此(1)空缺处所填写的内容是“ServerSocket(PORT)”或“ServerSocket(PORT,1,InetAddress.getByName(“127.0.0.1”))”。
    由(2)空缺处的注释内容可知,该空缺处所填写内容的作用是要创建来自客户端的连接套接字。从 ServerSocket类的成员函数表(见表6-16)中可知,其函数accept()的作用是返回建立连接的Socket类型的对象。因此(2)空缺处所填写的内容是“serverSocket.accept()”或其等价的带参数形式。
    第(3)空缺处是要创建输入流,从Socket类的主要成员函数表(见表6-17)中可知,函数getInputStream()是返回当前对象关联的输入流。因此(3)空缺处应填入“getInputStream()”或其等价的带参数形式。
    第(4)空缺处是要创建输出流,从表6-17中Socket类的getOutputStream()函数功能说明可知,getOutputStream()是返回当前对象关联的输出流。因此(4)空缺处应填入“getOutputStream()”或其等价的带参数形式。
    第(5)空缺处是解析客户端HTIP请求,在Request.java程序中关于Request对象成员函数说明,语句“public void parse(){...parseUrl();...)”声明了,函数parse()的作用就是解析客户端HTTP请求消息。因此(5)空缺处所填写的内容是“parse()”或其等价的带参数形式。
    第(6)空缺处是解析客户端发送所请求的静态资源,在Response.java程序中关于Response对象成员函数说明中,语句"public void sendStaticResource()throwsIOException{...}“声明了,函数sendStaticResource()的作用就是向客户端发送所请求的静态资源。因此(6)空缺处应填入“sendStaticResource()”或其等价的带参数形式。
    第(7)空缺处是关闭套接字,可以直接调用Socket类的close()方法,即该空缺处所填写的内容是“socket.close()”。
    第(8)空缺处要注意到其作用是要获取HTFP中的URL信息,从而决定是否关闭服务器。在Request.java程序关于Request对象成员函数的定义中,有3个与URL相关的成员函数。但是只有parseUrl(String requestString)可以解析出其中的URL,并且该函数要求有一个输入的参数,因此必须找出如何获得这个参数的方法。在题目所给出的信息中,只有Request对象的另一个成员函数getUrl()可以返回String类型的URL。因此(8)空缺处所填写的内容是“getUrl()”。

  • 第3题:

    客户负责建立客户到服务器的套接字连接,即客户负责呼叫。因此,服务器必须建立一个等待接收客户的套接字的Socket对象。()

    此题为判断题(对,错)。


    答案:错

  • 第4题:

    以下属于安全套接层定义的客户端和服务器端之间要交换的认证信息的是()

    • A、允许客户端和服务器选择加密算法以及使用的密钥
    • B、服务器端鉴别客户端身份
    • C、建立一个安全套接层加密连接
    • D、客户端鉴别服务器身份

    正确答案:A,B,C,D

  • 第5题:

    ServerSocket.accept()返回()对象,使服务器与客户端相连。


    正确答案:Socket

  • 第6题:

    客户端与服务器用套接字进行连接时,可能会产生的例外是()

    • A、IOException
    • B、IndexOutOfBoundsException
    • C、InterruptedException
    • D、MalformedURLException

    正确答案:A

  • 第7题:

    TCP/IP套接字是最可靠的双向流协议。等待客户端的服务器使用(),而要连接到服务器的客户端则使用()。


    正确答案:ServerSocket类;Socket类

  • 第8题:

    当informix客户端应用和数据库服务器处于同一个主机上时,以下最佳连接到数据库服务器的方法是()。

    • A、通过流通道
    • B、通过共享内存
    • C、通过套接字

    正确答案:B

  • 第9题:

    填空题
    TCP/IP套接字是最可靠的双向流协议。等待客户端的服务器使用(),而要连接到服务器的客户端则使用()。

    正确答案: ServerSocket类,Socket类
    解析: 暂无解析

  • 第10题:

    单选题
    关于Socket通讯正确的是()。
    A

    服务器端需要ServerSocket需要绑定端口号

    B

    服务器端需要ServerSocket需要绑定端口号和IP地址

    C

    客户端需要Socket,需要绑定端口号

    D

    客户端需要ServerSocket,需要绑定端口号


    正确答案: C
    解析: 暂无解析

  • 第11题:

    单选题
    支持双向的数据流,但并不保证是可靠、有序、无重复的是()。
    A

    流套接字

    B

    数据报套接字

    C

    客户端套接字

    D

    服务器端套接字


    正确答案: A
    解析: 暂无解析

  • 第12题:

    填空题
    套接字之间的连接过程分为()、客户端请求和连接确认。

    正确答案: 服务器监听
    解析: 暂无解析

  • 第13题:

    阅读以下说明、Java源程序和运行测试部分

    1.HTTP协议。

    ●HTTP请求消息示例:

    GET/index, htmlHTTP/1.1

    Accept: image/gif, image/jpeg,* /

    Accept-Language: zh-ch

    Accept-encoding: gzip, deflate

    User-Agent: Mozilla/4.0(compatible; MSIE6.0; Windows NT5.1 )

    Host: localhost: 8080

    Connection: Keep-Alive

    ●HTTP响应消息示例:

    HTTP/1.1 200 OK

    Servert: Microsoft-IIS/4.0

    Date:Mon,3 Jan 1998 13:13:33 GMT

    Content-Type: text/html

    Last-Modified:Mon,11 Jan 1998 13:23:42 GMT

    Contelit-Length: 112

    <html>

    </html>

    2.相关类及主要成员函数。

    SewerSocket类:

    服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象。类中的主要成员函数如表1-4所示。

    基于连接的套接字。类中的主要成员函数如表1-5所示。

    【Java源程序;一个简单的Web服务器】

    /**********************************************/

    /* WebScrvc.java */

    /**********************************************/

    packageobjclass;

    import java.net. *;

    import java.io. *;

    public class WebServer{

    //Web服务器侦听的端口号

    public static final int PORT=8080;

    //WEB—ROOT变量存放Web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源

    public static final String WEB_ROOT=

    System.getProperty("user.dir")+File.separator+"webroot";

    //SHUTDOWN_COMMAND变量保存关闭服务器的命令

    private static final String SHUTDOWN_COMMAND="/shutdown";

    //是否收到关闭服务器命令的标志

    private boolean shutdown=false;

    public static void main(Sting [] args) {

    WebServerserver; newWebServer( );

    Server.await( );

    }

    public void await() {

    ServerSocke serversocke=null;

    try{

    //创建侦听端口号为PORT的ServerSocket类型的对象

    ServerSocket=new (1) ;

    System.out.println( "WebServerStarted!");

    }

    catch(IOException e) {

    e.printStackTrace( );

    System.exit(1);

    }

    //循环等待客户端连接

    while(!shutdown) {

    Socket socket=null;

    InputStream input=null;

    OutputStream utput=null;

    try{

    //创建来自客户端的连接套接宇

    Socket= (2) ;

    //创建输入流

    input=socket. (3) ;

    //创建输出流

    utput=socket. (4) ;

    //创建request对象

    Request request=new Request(input);

    //解析客户端HTTP请求

    request. (5) ;

    //创建Response对象

    Response response=new Response(output);


    正确答案:(1) ServerSocket(PORT)或ServerSocket(PORT1 InetAddress.getByName( "127.0.0.1" ) ) (2) serverSocket.accept( ) (3) getlnputStream( ) (4) getOutputStream( ) (5) parse( ) (6) sendStaticResource( ) (7) socket.close( ) (8) getUri( ) (9) http://localhost:8080/i
    (1) ServerSocket(PORT)或ServerSocket(PORT,1, InetAddress.getByName( "127.0.0.1" ) ) (2) serverSocket.accept( ) (3) getlnputStream( ) (4) getOutputStream( ) (5) parse( ) (6) sendStaticResource( ) (7) socket.close( ) (8) getUri( ) (9) http://localhost:8080/i

  • 第14题:

    下列关于ServerSocket类的说法,错误的是?()

    A.ServerSocket类是被final关键字修饰的类,因此没有子类

    B.ServerSocket类用于表示服务器端

    C.ServerSocket类中的accept()方法会阻塞

    D.创建ServerSocket对象时可以指定需绑定到的端口


    答案:A
    解析:ServerSocket类是一个普通方法,没有被final关键字所修饰,它有一个直接已知子类是SSLServerSocket

  • 第15题:

    支持双向的数据流,但并不保证是可靠、有序、无重复的是()。

    • A、流套接字
    • B、数据报套接字
    • C、客户端套接字
    • D、服务器端套接字

    正确答案:B

  • 第16题:

    以下哪个方法使服务器套接字监听客户连接并接收它()

    • A、accept
    • B、getLocalAddress
    • C、getInputStream
    • D、ServerSocket

    正确答案:A

  • 第17题:

    当使用客户端套接字Socket创建对象时,需要指定()

    • A、服务器主机名称和端口
    • B、服务器端口和文件
    • C、服务器名称和文件
    • D、服务器地址和文件

    正确答案:A

  • 第18题:

    java程序中,使用TCP套接字编写服务端程序的套接字类是()

    • A、Socket
    • B、ServerSocket
    • C、DatagramSocket
    • D、DatagramPacket

    正确答案:B

  • 第19题:

    套接字之间的连接过程分为()、客户端请求和连接确认。


    正确答案:服务器监听

  • 第20题:

    套接字之间的连接过程分为服务器监听、()和连接确认。


    正确答案:客户端请求

  • 第21题:

    单选题
    当使用客户端套接字Socket创建对象时,需要指定()
    A

    服务器主机名称和端口

    B

    服务器端口和文件

    C

    服务器名称和文件

    D

    服务器地址和文件


    正确答案: A
    解析: 暂无解析

  • 第22题:

    填空题
    套接字之间的连接过程分为服务器监听、()和连接确认。

    正确答案: 客户端请求
    解析: 暂无解析

  • 第23题:

    多选题
    以下属于安全套接层定义的客户端和服务器端之间要交换的认证信息的是()
    A

    允许客户端和服务器选择加密算法以及使用的密钥

    B

    服务器端鉴别客户端身份

    C

    建立一个安全套接层加密连接

    D

    客户端鉴别服务器身份


    正确答案: A,B
    解析: 暂无解析