Windows下C++实现WEB服务器
计算机网络练习题(附参考答案)

计算机网络练习题(附参考答案)一、单选题(共81题,每题1分,共81分)1.下列关于SNMP操作的描述中,正确的是( )。
A、只有在团体字的访问模式是read-write的条件下才能实现Get操作B、当出现自陷情况时.管理站会向代理发出包含团体字和TrapPDU的报文C、当管理站需要查询时.就向某个代理发出包含团体字和SetResponsePDU的报文D、代理使用Inform方式执行Notification操作时需要收到管理站发出的一条确认消息正确答案:D2.在TCP/IP协议簇中()协议属于网络层的无连接协议。
A、IPB、SMTPC、UDPD、TCP正确答案:A3.万维网上的每一个页面都有一个唯一的地址,这些地址统称为()。
A、域名地址B、统一资源定位符C、IP地址D、WWW地址正确答案:B4.下述协议中,( )不是链路层的标准。
A、ICMPB、HDLCC、PPPD、SLIP正确答案:A5.SMTP基于传输层的()协议,POP3基于传输层的()协议。
A、TCP TCPB、TCP UDPC、UDP UDPD、UTP TCP正确答案:A6.下列关于时分复用说法错误的是()。
A、每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙B、每一个用户所占用的时隙是周期性地出现.其周期就是TDM帧的长度C、TDM信号也成为等分技术D、时分复用的所有用户是在不同的时间占用同样的频带宽度正确答案:C7.网络层的主要目的是()。
A、在任意节点间进行数据报传输B、在邻接节点间进行数据报可靠传输C、在邻接节点间进行数据报传输D、在任意节点间进行数据报可靠传输正确答案:A8.当集线器的某个端口收到数据后,具体操作为()。
A、从所有端口广播出去B、随机选择一个端口转发出去C、根据目的地址从合适的端口转发出去D、从除了输入端口外的所有端口转发出去正确答案:D9.下述的哪一种协议是不属于TCP/IP模型的协议()。
A、TCPB、UDPC、IGMPD、HDLC正确答案:D10.频分多路复用器将每路信号调制在()。
WWW服务器的配置1

一、WWW服务器的配置:1。
启动Microsoft管理控制台。
用户通过执行Windows2000Sever的“开始”“程序”“管理工具”“Interner服务管理器”命令便可启动Microsoft的管理控制台。
2。
新建Web站点。
选择要在其中建立Web站点的主机,然后单击“活动工具栏”中的“操作”按扭,在出现的菜单中的选择“新建”先面的“Web站点”一项,“Web站点创建向导”对话框就会出现在屏幕上。
按照“Web站点创建向导”的要求,分别输入“Web站点说明”、“Web站点使用的。
IP地址”、“TC P端口”、“主目录路径”、“权限”等信息。
3。
Web站点的启动与停止。
4。
创建虚拟目录。
选择要创建虚拟目录的站点,然后单击“活动工具栏”中的“操作”,选择“新建”下面的“虚拟目录”,然后按照“虚拟目录创建向导”的要求,完成。
5。
设置Web站点标志。
在需要设置的站点上右击,选择“属性”;在“Web站点标志”区域可以修改Web站点的相关信息。
此外,你还可以对其他内容进行设置。
6。
指定Web站点的操作员。
在你所建立的站点上,右击“属性”,点击“操作员”,单击“添加”,选择用户或者是组进行添加。
7。
在“属性”中,你还可以进行主目录,默认文档的设置。
8。
站点的访问控制的级别的设置,IP地址与域名限制的设置……二、Web Browser中文名称:网络浏览器或网页浏览器,简称浏览器英文名称:Web Browser浏览器是个显示网页伺服器或档案系统内的HTML文件,并让用户与此些文件互动的一种软件。
个人电脑上常见的网页浏览器包括微软的Internet Explorer、Mozilla 的Firefox、Opera和Safari。
浏览器是最经常使用到的客户端程序。
协定和标准网页浏览器主要通过HTTP协议连接网页伺服器而取得网页,HTTP容许网页浏览器送交资料到网页伺服器并且获取网页。
目前最常用的HTTP是HTTP/1.1,这个协议在RFC2616中被完整定义。
网络配置试题(含答案)及复习资料

第一章网络服务器基础1、什么是服务器?服务器(Server)是在网络环境中提供各种服务的计算机,承担网络中数据的存储、转发和发布等关键任务,是网络应用的基础和核心。
2、什么是网络服务?网络服务是指一些在网络上运行的、应用户请求向其提供各种信息和数据的计算机应用业务,主要是由服务器软件来实现的。
3、网络服务主要模式a.客户/服务器(C/S )模式b.浏览器/服务器(B/S)模式c.P2P模式4、Internet部署网络服务器外包方式优势服务器租用(整机租用由一个用户独享专用,在成本和服务方面的优势明显)服务器托管(可以节省高昂的专线及网络设备费用)虚拟主机(性能价格比远远高于自己建设和维护服务器)5、TCP/IP协议体系网络层协议:IP(网际协议)ICMP(Internet互联网控制报文协议)IGMP(Internet组管理协议)传输层协议:TCP(传输控制协议)UDP(用户数据报协议)应用层协议:SNMP(简单网络管理协议)SMTP(简单邮件传输协议)FTP(文件传输协议)Telnet(远程访问终端协议)HTTP(超文本传输协议)1、简述网络服务的主要模式a.客户/服务器(C/S )模式b.浏览器/服务器(B/S)模式c.P2P模式2、Internet服务器有哪几种外包方式,每种方式都有什么优点?外包方式优势服务器租用(整机租用由一个用户独享专用,在成本和服务方面的优势明显)服务器托管(可以节省高昂的专线及网络设备费用)虚拟主机(性能价格比远远高于自己建设和维护服务器)3、简述TCP/IP的分层结构应用层表示层会话层[SMTP FTP HTTP Telnet SNMP DNS ]传输层[ TCP UDP ]网络层[ ICMP IP IGMP ][ARP RARP]4、简述合法的私有IP地址类型及其地址范围(A类)10.0.0.1~10.255.255.254 (B类)172.16.0.1~172.32.255.254(C类)192.168.0.1~192.168.255.2545、子网掩码有什么作用?将IP地址划分成网络地址和主机地址两部分,确定这个地址中哪一个部分是网络部分。
软件水平考试中级网络工程师上午基础知识试题-试卷1_真题-无答案

软件水平考试(中级)网络工程师上午(基础知识)试题-试卷1(总分178,考试时间90分钟)1. 选择题选择题()下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1. 下面对访问控制列表的描述正确的是______。
A. access-list 1 deny 1.1.1.1B. access-list 1 permit anyC. access-list 1 permit 1.1.1.1 0 2.2.2.2 0.0.0.255D. access-list 99 deny tcp any 2.2.2.2 0.0.0.2552. 下列关于OSPF协议的说法不正确的是______。
A. OSPF支持基于接口的报文验证B. OSPF支持到同一目的地址的多条等值路由C. OSPF是一个基于链路状态算法的边界网关路由协议D. OSPF发现的路由可以根据不同的类型而有不同的优先级3. 使用LOC(Lines Of Code)度量软件规模的优点是______。
A. 容易计算B. 与使用的编程语言相关C. 与使用的开发模型有关D. 在设计之前就可以计算出LOC4. 知识产权一般都具有法定的保护期限。
其中,(8)权受法律保护的期限是不确定的,一旦为公众所知悉,即成为公众可以自由使用的知识。
A. 发明专利B. 商标C. 作品发表D. 商业秘密5. 子网掩码产生在那一层(15)。
A. 表示层B. 网络层C. 传输层D. 会话层6. 下述任务中,(2)不属于软件工程需求分析阶段。
A. 分析软件系统的数据要求B. 确定软件系统的功能需求C. 确定软件系统的性能要求D. 确定软件系统的运行平台7. N-ISDN网络提供基本接口速率时,一路话音占用的数据传输率占用其信道带宽的比例是(25)。
A. 25%.B. 44.4%.C. 50%.D. 88.89%.8. 在SNMPv1管理框架中,如果代理需要向管理站报告一个异常事件,则代理发出trap报文。
Web服务器创建与管理习题及答案

Web服务器创建与管理习题及答案⼀、填空题1.URL格式:()://():()/⽂件路径。
2.⽹络服务器根据应⽤层次或规模档次可划分为:⼊门级服务器、( )、()和企业级服务器。
3.电⼦服务器使⽤()协议向外发送电⼦。
4.⽤户主要使⽤()协议访问互联⽹中的Web资源。
5.常⽤的IP地址级别分为3类,即()、()和()。
6.DNS区域分为两类:()和()。
7.在⼀台计算机上建⽴多个Web站点的⽅法有:利⽤多个()、利⽤多个()和利⽤多个主机头名称。
8.WWW协议使⽤的端⼝号是(),FTP协议使⽤的端⼝号是()和(), SMTP协议的标准TCP端⼝为(),POP3协议的标准TCP端⼝号为(),IMAP协议的标准TCP端⼝号为()9.⽤户使⽤_( ) 协议从电⼦服务器那⾥获取电⼦。
10.在搜索引擎中,根据搜索围可将搜索引擎分为()和()。
11.国际顶级域名分为()和()两种模式。
12.IPv4的地址是()位的⼆进制数,⽽IPv6是()位的⼆进制数。
13.电⼦系统由()、()和()组成的。
14.电⼦服务使⽤的两个最重要协议是:()协议和POP3协议。
15.列出五种Windows server 2003常⽤的⽹络服务()、()、()、()、()。
16.⽬前,应⽤于互联⽹上的流媒体发布⽅式主要有:单播、⼴播、多播和( )等四种⽅式。
17.使⽤Windows Media可以提供()和()等服务。
18.主要服务器操作系统⽬前有三种,即 Window 、()()。
19.TCP/IP配置完毕后,⽤命令Ping是()20.HOSTS⽂件实现的功能是()。
21.DHCP是⼀种简化主机IP配置管理的TCP/IP标准,全称()。
22.Web浏览器和服务器是通过()协议来建⽴连接、传输信息和终⽌连接。
23.IIS6.0通过分配TCP端⼝、()和()来运⾏和管理多个。
24.对于TCP/IP⽹络来说,()提供域名解析服务。
25.FTP全称为()协议,是⽤于TCP/IP⽹络及INTERNET的最简单协议之⼀。
C语言也能干大事之开发网站

练习
实现登陆表单,带“找回密码”链接。
Web开发原理及 编写原始CGI程序
登录过程分析
打开qq邮箱首页,填入用户名密码(输错),点击【登录】按钮,浏览器将 用户输入的用户名、密码发送给网站服务器,网站服务器让负责处理登录请 求的服务器程序来处理这个登录请求,处理程序判断用户名、密码是否正确 ,然后将判断结果返回给浏览器。 使用工具查看发送、返回报文理解:上网就是从服务器向浏览器传送 html 格 式描述的网页,每次请求都带回来新的页面;页面中的图片、js、css在单独的 请求中;
web开发原理及编写原始cgi程序登录过程分析打开qq邮箱首页填入用户名密码输错点击登录按钮浏览器将用户输入的用户名密码发送给网站服务器网站服务器让负责处理登录请求的服务器程序来处理这个登录请求处理程序判断用户名密码是否正确然后将判断结果返回给浏览器
C语言也能干大事 之 开发网站
如鹏网
学前说明
尽量使用Chrome浏览器,和讲课保持统一,避免浏览器差异性问题。 开发工具讲课用Visual Studio2012,大家用VS2010以上都可以,但是不要再用 VC6了。Vi输入标签的类型,共有10个值:文本框text、密码框 password、单选框radio、复选框checkbox、隐藏字段hidden、提 交按钮submit、重置按钮reset、按钮button、文件上传file、图像 image.
<SELECT>标签:定义一个选择列表
<select name="city"> <option value="1">北京</option> <option value="2">深圳</option> </select> 注:<option>:定义下拉列表中的选项,属性 selected 没有属性值 加在其中一个子项上,该子项就变成默认被选中项。
Web服务器的配置与管理实训报告

实训报告一数据库的基本管理一、数据库安全操作1、登陆管理任务1、将当前SQL Server实例的验证模式设置为“SQL Server和Windows验证模式.任务2、在当前数据库引擎中创建“Windows身份验证”登录名(对应的Windows用户名为winlogin)任务3、在当前数据库引擎中创建“SQL Server身份验证”登陆名为“newLogin”,密码为“123456”任务4、在当前数据库引擎中创建“SQL Server身份验证”登陆名为“sqlLogin”,密码为“123”任务5、查看sa用户的属性,并将其登录状态设为“启用”2、用户管理任务1、为数据库“Student”创建与newlogin登录名对应的数据库用户newuser,并查看其属性任务2、为数据库“Student”创建与sqlLogin登录名对应的数据库用户sqluser,并查看其属性任务3、为数据库“Student”创建与sqlLogin登录名对应的数据库用户testuser,并查看其属性任务3、将数据库用户testuser修改为win任务4、删除win3、服务器角色管理任务1、使用SSMS,将登录名“newlogin”添加到“sysadmin”固定服务器角色任务2、将登录名“newlogin”添加到“serveradmin”服务器角色中,并从sysadmin 服务器角色中删除“newLogin”4、数据库角色管理任务1、查看固定数据库角色db_owner的属性,将数据库用户sqluser添加到db_owner角色中任务2、查看固定数据库角色db_datawriter的属性,并将数据库用户newuser添加到该角色中任务3、创建用户定义数据库角色db_myuser,并将数据库用户sqluser添加到该角色中5、权限管理任务1、使用SSMS授予数据库用户sqluser对“Goods”表的查询权限,查看Goods表的权限属性任务2、授予sqluser对“Orders”表的插入和修改权限,并查看授权后的Orders 表的权限属性任务3、把在数据库中建立表的权限授予stud_user1任务4、用户Liu需要通过“学生信息管理系统”应用程序对数据库中的stud_info、lesson_info表进行查询(SELECT)、修改(UPDATE)和添加(INSERT)操作,但该用户不能使用SQL Server提供的工具访问tud_info或lesson_info表。
国企计算机专业能力测试题

国企计算机专业能力测试题
1.以下哪个不是网络服务的模式?
A.设计模式
B.共享模式
C.集约式模式
D.层次式模式
2.计算机系统功能最高的架构是?
A.数字处理系统
B.微处理器系统
C.分布式处理系统
D.多媒体处理系统
3.下列关于网络安全的叙述,正确的是?
A.加密是提高网络安全的最佳方法
B.网络安全的最佳实践是保持系统经常更新
C.网络防火墙是网络安全的核心
D.使用专用安全软件可以有效地防止网络攻击
4.关于系统管理,下列叙述中正确的是?
A.系统管理涉及到硬件、软件和用户之间的交互
B.系统管理在确保系统安全的同时不影响系统性能
C.系统管理通过建立政策来实现对资源的控制
D.系统管理不需要制定和实施可行的恢复计划
5.下列哪些是信息安全管理框架的主要原则?
A.保密性
B.可靠性
C.可用性
D.无线性
6.下列哪些软件通常用于管理网络服务器?
A. Apache Web服务器
B. IIS Web服务器
C. Windows服务器
D. Linux服务器
7.以下哪种技术可以有效抵御网络攻击?
A.层次型安全
B.入侵检测系统
C.认证技术
D.病毒检测系统
8.下列哪些是信息安全基础设施?
A.防火墙
B.身份验证
C.加密。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/topic/368943自己研究了好几天终于写出来一个,哈哈,当然也从网上得到了很多的帮助拉。
谢谢大家咯!这个版本还不是很完善,但Web服务器的基本框架已经出来了,还有部分的功能需要进行进一步的测试和修改。
虽然说C的开发比较慢,对于程序员来说比较难以操作,但通过用C写这些很底层的东西,可以更好的了解的象java的socket中的工作原理。
有一定的帮助!以下是源代码:#include <winsock.h>#include <sys/stat.h>#include <iostream>using namespace std;#define SERVER_PORT 10000 //自定义的服务端口#define HOSTLEN 256 //主机名长度#define BACKLOG 10 //同时等待的连接个数int sendall(int s, char *buf, int *len) {int total = 0; // 已经发送字节数int bytesleft = *len; //还剩余多少字节int n;while(total < *len) {n = send(s, buf+total, bytesleft, 0);if (n == -1) { break; }total += n;bytesleft -= n;}*len = total; // 返回实际发送出去的字节数return n==-1?-1:0; // 成功发送返回0 失败-1}void wrong_req(int sock) {char* error_head = "HTTP/1.0 501 Not Implemented\r\n"; //输出501错误 int len = strlen(error_head);if (sendall(sock, error_head, &len) == -1) { //向客户发送printf("Sending failed!");return;}char* error_type = "Content-type: text/plain\r\n";len = strlen(error_type);if (sendall(sock, error_type, &len) == -1) {printf("Sending failed!");return;}char* error_end = "\r\n";len = strlen(error_end);if (sendall(sock, error_end, &len) == -1) {printf("Sending failed!");return;}char* prompt_info = "The command is not yet completed\r\n";len = strlen(prompt_info);if (sendall(sock, prompt_info, &len) == -1) {printf("Sending failed!");return;}}bool not_exit(char* arguments) {struct stat dir_info;return (stat(arguments, &dir_info) == -1);}void file_not_found(char* arguments, int sock) {char* error_head = "HTTP/1.0 404 Not Found\r\n"; //构造404错误head int len = strlen(error_head);if (sendall(sock, error_head, &len) == -1) { //向客户端发送printf("Sending error!");return;}char* error_type = "Content-type: text/plain\r\n";len = strlen(error_type);if (sendall(sock, error_type, &len) == -1) {printf("Sending error!");return;}char* error_end = "\r\n";len = strlen(error_end);if (sendall(sock, error_end, &len) == -1) {printf("Sending error!");return;}char prompt_info[50] = "Not found: ";strcat(prompt_info, arguments);len = strlen(prompt_info);if (sendall(sock, prompt_info, &len) == -1) { //输出未找到的文件printf("Sending error!");return;}}void send_header(int send_to, char* content_type) {char* head = "HTTP/1.0 200 OK\r\n"; //正确的头部信息int len = strlen(head);if (sendall(send_to, head, &len) == -1) { //向连接的客户端发送数据 printf("Sending error");return;}if (content_type) { //content_type不为空char temp_1[30] = "Content-type: "; //准备好要连接的字串strcat(temp_1, content_type); //构造content_typestrcat(temp_1, "\r\n");len = strlen(temp_1);if (sendall(send_to, temp_1, &len) == -1) {printf("Sending error!");return;}}}char* file_type(char* arg) {char * temp; //临时字符串指针if ((temp=strrchr(arg,'.')) != NULL) { //取得后缀return temp+1;}return ""; //如果请求的文件名中没有. 则返回空串}void send_file(char* arguments, int sock) {char* extension = file_type(arguments); //获得文件后缀名char* content_type = "text/plain"; //初始化type='text/plain'FILE* read_from; //本地文件指针从该文件中读取.html .jpg等int readed = -1; //每次读得的字节数if (strcmp(extension, "html") == 0) { //发送内容为htmlcontent_type = "text/html";}if (strcmp(extension, "gif") == 0) { //发送内容为gifcontent_type = "image/gif";}if (strcmp(extension, "jpg") == 0) { //发送内容为jpgcontent_type = "image/jpg";}read_from = fopen(arguments, "r"); //打开用户指定的文件准备读取 if(read_from != NULL) { //指针不为空char read_buf[128]; //读文件时的字节缓存数组send_header(sock, content_type); //发送协议头send(sock, "\r\n", 2, 0); //再加一个"\r\n" 不能缺少格式要求while(!feof(read_from)) { //判断文件是否已经结束fgets(read_buf, 128, read_from); //读取int len = strlen(read_buf);if (sendall(sock, read_buf, &len) == -1) { //发送数据printf("Sending error!"); //出现发送错误显示到控制台继续发送 continue;}}}}void handle_req(char* request, int client_sock) {char command[BUFSIZ]; //保存解析到的命令字段 GET PUTchar arguments[BUFSIZ]; //保存解析到的请求的文件strcpy(arguments, "./"); //注意该符号在不同操作系统的区别if (sscanf(request, "%s%s", command, arguments+2) != 2) {return; //解析出错在返回}printf("handle_cmd: %s\n",command); //向控制台输出此时的命令 printf("handle_path: %s\n",arguments); //向控制台输出此时的请求路径if (strcmp(command, "GET") != 0) { //请求命令格式是否正确wrong_req(client_sock);return;}if (not_exit(arguments)) { //请求的文件是否存在file_not_found(arguments, client_sock);return;}send_file(arguments, client_sock); //命令格式及请求路径正确则发送数据return;}int make_server_socket() {struct sockaddr_in server_addr; //服务器地址结构体int tempSockId; //临时存储socket描述符tempSockId = socket(PF_INET, SOCK_STREAM, 0);if (tempSockId == -1) { //如果返回值为-1 则出错return -1;}server_addr.sin_family = AF_INET;server_addr.sin_port = htons(SERVER_PORT);server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //本地地址memset(&(server_addr.sin_zero), '\0', 8);if (bind(tempSockId, (struct sockaddr *)&server_addr,sizeof(server_addr)) == -1) { //绑定服务如果出错则返回-1printf("bind error!\n");return -1;}if (listen(tempSockId, BACKLOG) == -1 ) { //开始监听printf("listen error!\n");return -1;}return tempSockId; //返回取得的SOCKET}void main(int argc, char * argv[]) {WSADATA wsaData;if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {fprintf(stderr, "WSAStartup failed.\n");exit(1);}printf("My web server started...\n");int server_socket; //服务器的socketint acc_socket; //接收到的用户连接的socketint sock_size = sizeof(struct sockaddr_in);struct sockaddr_in user_socket; //客户连接信息server_socket = make_server_socket(); //创建服务器端的socketif (server_socket == -1) { //创建socket出错printf("Server exception!\n");exit(2);}while(true) {acc_socket = accept(server_socket, (struct sockaddr *)&user_socket, &sock_size); //接收连接//cout << inet_ntoa(user_socket.sin_addr) << endl; //测试用:-)//int numbytes;char buf[100];if ((numbytes=recv(acc_socket, buf, 99, 0)) == -1) {perror("recv");exit(1);}//printf("buf ... %s", buf); //测试用handle_req(buf, acc_socket);}}和我的上一篇文章是一起写的,呵呵,大家给提点意见啊。