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

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

服务器主机名称和端口

B

服务器端口和文件

C

服务器名称和文件

D

服务器地址和文件

参考答案和解析
正确答案: A
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

socket调用需要客户程序和服务器程序分别调用才能建立一个套接字连接()


参考答案:对

第2题:

套接字socket与以下哪个对象最接近?

A、服务器

B、文件

C、协议栈

D、操作系统


参考答案:B

第3题:

在J2EE中,当使用以某主机地址为参数的构造器来创建新的Socket实例时()。

A.客户端试图通过Internet建立与该主机的链接

B.客户端启动运行于主机上的服务器程序

C.没有特殊事情发生,直到调用Socket的accept()方法

D.调用Socket的accept()方法


参考答案:A

第4题:

阅读以下说明、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

第5题:

要将web页中的数据装载到Java应用程序中,下列哪种方式最佳?

A.创建一个Socket,并使用该套接字来创建一个输入流

B.创建一个URL,并使用该URL来创建一个URL Connection

C.使用Applet小程序的showDocument()方法来装载

D.上述方法没有什么区别,所以也就没有哪个最佳


正确答案:B
解析:套接字适用于低级连接,使实现新的连接时。但对于诸如HTTP等现有的协议,有更适合的类――URL和URLConnection。Socket是用来实现客户与服务者之间的通信,Java在Sockel中提供多线程机制,对实现大呈客户通信带来了好处;数据报通信的协议UDP是无连接协议,它对传输数据的大小有限制,在64KB之内.它的传输不可靠,但操作简单。

第6题:

在利用socket编写邮件服务器时,使用的套接字应该是()。

A.流式套接字

B.数据报套接字

C.UDP套接字

D.TCP套接字


正确答案:A

第7题:

说一下SOCKET。(套接字)


正确答案:
     

第8题:

●Socket的通信方式包括 (62) , (63) 是最常用的套接字类型。

(62)、(63) A.字节流套接字

B.数据报套接字

C.原始数据报套接字

D.A、B和C


正确答案:D,A
【解析】本题考查的是Socket的通信方式。
使用Socket进行通信的方式有3种。
字节流套接字(stream socket):TCP/IP协议族中的TCP协议使用此类接口,它提供面向连接的(建立虚电路)、无差错的、发送接收顺序一致的、包长度不限和非重复的网络信包传输。
数据报套接字(datagram socket):TCP/IP协议族中的UDP(Liser Datagram Protocd)协议使用此类接口,它是无连接的服务,以独立的包进行网络传输,包最大长度为32kB,传输不保证顺序性、可靠性和无重复性,通常用于单个报文传输或可靠性要求不高的场合;
原始数据报套接字:提供对网络下层通信协议(如IP协议)的直接访问,一般不是提供给普通用户的,主要用于开发新的协议或提取协议较隐蔽的功能。其中字节流套接字是最常用的套接字类型。

第9题:

[Java 源程序:一个简单的Web服务器]

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

/* WebServer.java* /

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

package objclass;

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_COMMAND变量保存关闭服务器的命令

private boolean shutdown=falset //是否收到关闭服务器命令的标志

public static void main(String[] args) {

WebServer server=new WebServer();

server.await();

}

public void await(){

Serversocbet serverSocket=null

try{

serversocket=new (1) ; //创建侦听端口号为PORT的Serversocket类型的对象

System.out.println(“WebServer Started!”);

}cateh(10Exceptione){

e.printStackTrace();

System.exit(1);

}

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

Socket socket=null

InputStream input=null;

OutputStream utput=null;

try{

socket= (2) ; //创建来自客户端的连接套接宇

input=SOCket. (3) , //创建输入流

output=SOCket. (4) //创建输出流

Request request=new Request(input); //创建Request对象

request. (5) ; //解析客户端HTTP请求

Responseresponse=new Response(output); //创建Response对象

response.setRequest(request); //将Request对象传递给Response对象

response (6) ; //给客户端发送所请求的静态资源

(7) , //关闭连接套接字

shutdown=request. (8) .equals(SHUTDOWN_COMMAND);

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

}

}

}

}

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

/ * Request.java */

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

package objclass;

import java.io.InputStream;

import java.io.IOException;

public class Request {

private InputStream input;

private String uri;

public Request(InputStream input) { this.input=input;}

public void parse() {... parseUri();...} //解析客户端HTTP请求消息

private String parseUri(String requestString) {... } //解析客户端HTTP请求中的URI

public String getUri() {return uri;}

}

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


正确答案:(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/index. html 或 http.//127.0.0.1:8080/index.html (10) http://localhost:8080/shutdown 或 http://127.0.0.1: 8080/shutdown
(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/index. html 或 http.//127.0.0.1:8080/index.html (10) http://localhost:8080/shutdown 或 http://127.0.0.1: 8080/shutdown 解析:本题考查考生对Socket通信的基本模型和Java的基本调用方法的了解。下面介绍基于Socket的客户/服务器通信模式的基本模型。
在TCP/IP网络应用中,通信的2个进程间相互作用的主要模式是客户/服务器模式 (Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于2点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户/服务器模式的TCP/IP。
客户/服务器模式在操作过程中采取的是主动请求方式。首先服务器方启动,并根据请求提供相应服务;
(1)打开一通信通道并告知本地主机,它愿意在某一公认地址上(端口,如FTP为 21)接收客户请求;
(2)等待客户请求到达该端口;
(3)接收到重复服务请求,处理该请求并发送应答信号,接收到并发服务请求,要激活一新进程来处理这个客户请求(如UNIX系统中用fork和exec)。新进程处理此客户请求,并不需要对其他请求作出应答。服务完成后,关闭此新进程与客户的通信链路并终止;
(4)返回第2步,等待另一客户请求;
(5)关闭服务器。
客户方的启动过程如下:
(1)打开一通信通道,并连接到服务器所在主机的特定端口:
(2)向服务器发服务请求报文,等待并接收应答,继续提出请求;
(3)请求结束后关闭通信通道并终止。
从上面所描述过程可知:
(1)客户与服务器进程的作用是非对称的,因此编码不同;
(2)服务进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。
值得注意的是,该题没有给出完整的Java服务程序代码,考查考生对Socket通信的基本过程的理解,要求熟悉Socket传送数据的基本方法。程序给出对Response和 Request对象的定义和2个对象的方法定义,但是方法的具体的功能一定要注意看语句后面的注释,要填空的地方的信息也来自于后面注释的信息。Java程序是区分大小写的,所以一定要弄清楚什么地方指的是类,什么地方是类的实例。因为类和类的实例的拼写通常就是只有大小写的区别。
(1)空很明显,要求创建一个侦听端口为PORT的ServerSocket类型的对象,那么只要调用ServerSocket类的构造函数就可以了,具体的参数可以参照ServerSocket类的成员函数表中的格式调用。因此,(1)空应填ServerSocket(PORT)。
(2)空的作用从注释中可知,是要创建来自客户端的连接套接字,从ServerSocket类的成员函数表中可知,其函数accept()的作用是返回建立连接的Socket类型的对象。因此,(2)空应填serverSocket.accept()。
(3)空是创建输入流,从Socket类的主要成员函数表中可知getlnputStream()是返回当前对象关联的输入流。因此,(3)空应填getlnputStream()。
(4)空是创建输出流,从Socket类的主要成员函数表中可知getOutputStream()是返回当前对象关联的输出流。因此,(4)空应填getOutputStream()。
(5)空是解析客户端HTTP请求,在resopnse对象的成员函数表中可以知道 parse()的作用就是解析客户HTTP请求消息。因此,(5)空应填parse()。
(6)空是解析客户端发送所请求的静态资源,在resopnse对象的成员函数表中可以找到对应的成员函数sendStaticResource()。因此,(6)空应填sendStaticResource()。
(7)空关闭套接字,可以直接调用socket类的close()方法。因此,(7)空应填 socket.close()。
(8)空要注意其作用是要获取HTTP中的URI的信息从而决定是否关闭服务器,在 Request对象的定义中可以发现有3个跟URl相关的成员函数,但是只有parseUri (string requestString)可以解析出其中的URI,但是该函数要求有一个输入的参数,所以必须要找出如何获得这个参数。在题目所给出的信息中,只有Request对象的另一个成员函数getUri()可以返回string类型的URI。因此,(8)空应填parseUri(getUri())。
(9)空的要点在于必须了解服务器在本地运行的基本路径和端口。在题目最开始给出的请求消息示例信息中,可以看到这么一句,即host:localhost:8080,所以该服务器使用的不是标准端口,而是8080号。同样,在服务器主程序中定义的常量PORT也可以看出来。在下一个常量的定义WEB_ROOT=System.getProperty(“user.dir”)+File.separator+”webroot”中,不要被webroot迷惑,因为Web服务器本身会使用WEB_ ROOT作为根目录,至于根目录指向哪个文件夹只要在定义里面指定好就可以了,不要在 HTTP请求中再加上一个路径。因此,(9)空应填http;//localhost:8080/index.html。
(10)空可依照此类推可知答案为http://localhost:8080/shutdown。

第10题:

Socket的通信方式包括(62),(63)是最常用的套接字类型。

A.字节流套接字

B.数据报套接字

C.原始数据报套接字

D.A、B和C


正确答案:D

更多相关问题