ServerSocket类和Socket类主要完成TCP程序设计。
第1题:
阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。
[说明]
使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。
创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。
[C++程序]
[ListenEX()函数]
第2题:
A、InetAddress
B、DatagramSocket
C、Socket
D、ServerSocket
第3题:
程序设计语言通常分为( )。
A.4类
B.2类
C.3类
D.5类
第4题:
A.ServerSocket类是被final关键字修饰的类,因此没有子类
B.ServerSocket类用于表示服务器端
C.ServerSocket类中的accept()方法会阻塞
D.创建ServerSocket对象时可以指定需绑定到的端口
第5题:
在java.net包中提供了两个类______和ServerSocket,这两个类分别用来表示双向连接的客户端和服务端。
A.ClientSocket
B.Socket
C.clientsocket
D.socket
第6题:
A、WebSocket是一个完整的应用层协议,包含一套标准的API
B、Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)
C、WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的
D、Socket(TCP)是传输控制层协议,WebSocket是应用层协议
第7题:
A、getOutputStream()
B、get()
C、receive()
D、accept()
第8题:
A.客户端需要ServerSocket,需要绑定端口号
B.客户端需要Socket,需要绑定端口号
C.服务器端需要ServerSocket,需要绑定端口号和IP地址
D.服务器端需要ServerSocket,需要绑定端口号
第9题:
阅读以下技术说明、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
第10题:
面向对象程序设计方法把程序设计的焦点集中在( )。
A.对象和类的设计与实现
B.类和类层次结构的设计、实现和重用
C.方法、消息和继承性的设计与实现
D.数据和方法的封装