Windows下C++实现WEB服务器
- 格式:docx
- 大小:23.00 KB
- 文档页数:9
计算机网络练习题(附参考答案)一、单选题(共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。
启动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(总分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服务器创建与管理习题及答案⼀、填空题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的最简单协议之⼀。
实训报告一数据库的基本管理一、数据库安全操作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.加密。
opensslwindows编译OpenSSL是一种开源软件库,它提供了一组网络协议的实现,包括SSL和TLS。
在许多Web服务器和其他应用程序中,OpenSSL的库被用于加密数据传输。
在本文中,我们将讲解如何在Windows上编译OpenSSL库。
步骤一:安装Visual Studio要运行OpenSSL的编译工具,您需要安装编译器和相关工具。
Visual Studio是一种流行的集成开发环境,它包含了C/C++编译器和Windows SDK。
你可以从Microsoft的官方网站下载免费的Visual Studio Community Edition。
步骤二:下载OpenSSL源代码在编译之前,您需要下载OpenSSL源代码。
您可以从OpenSSL官方网站下载最新的源代码版本。
下载后,将源码解压缩到磁盘上。
步骤三:打开Visual Studio开发人员命令提示符在Windows系统中,您需要在Visual Studio开发人员命令提示符中运行编译命令。
打开Visual Studio开发人员命令提示符的方法是:1. 打开Visual Studio。
2. 从“开始菜单”中打开“Visual Studio 2019”文件夹。
3. 单击“开发人员命令提示符”。
步骤四:设置OpenSSL编译选项为了编译正确的代码,您需要设置一些编译选项。
在Visual Studio开发人员命令提示符中运行以下命令:1. 进入OpenSSL源代码目录:cd C:\your\path\to\openssl(请将“C:\your\path\to\openssl”替换为您下载OpenSSL源代码的路径。
)2. 进入config目录:cd config3. 运行“perl Configure”命令,进行配置:perl Configure VC-WIN32(如果您使用的是64位系统,请使用以下命令:)perl Configure VC-WIN64A4. 运行“ms\do_ms”命令生成Makefile文件:ms\do_ms步骤五:编译OpenSSL库现在,您可以编译OpenSSL库了。
Windows Server 2008上使用IIS搭建WEB服务器、客户端的数字证书应用(一)一、什么是数字证书及作用?数字证书就是互联网通讯中标志(证明)通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。
它是由一个由权威机构-----CA 机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。
最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。
常用的密钥包括一个公开的密钥和一个私有的密钥即一组密钥对,当信息使用公钥加密并通过网络传输到目标主机后,目标主机必需使用对应的私钥才能解密使用。
使用它主要是为了提高IT系统在敏感数据应用领域的安全性,为用户业务提供更高安全保障;注:数字证书,下面均简称证书;二、如何搭建证书服务器?搭建证书服务器步骤如下:1、登陆Windows Server 2008服务器;2、打开【服务器管理器】;(图2)3、点击【添加角色】,之后点击【下一步】;(图3)4、找到【Active Directory证书服务】勾选此选项,之后点击【下一步】;(图4)5、进入证书服务简介界面,点击【下一步】;(图5)6、将证书颁发机构、证书颁发机构WEB注册勾选上,然后点击【下一步】;(图6)7、勾选【独立】选项,点击【下一步】;(由于不在域管理中创建,直接默认为:“独立”)(图7)8、首次创建,勾选【根CA】,之后点击【下一步】;(图8)9、首次创建勾选【新建私钥】,之后点击【下一步】;(图9)10、默认,继续点击【下一步】;(图10)11、默认,继续点击【下一步】;(图11)12、默认,继续点击【下一步】;(图12)13、默认,继续点击【下一步】;(图13)14、点击【安装】;(图14)15、点击【关闭】,证书服务器安装完成;(图15)Wind ows Server 2008上使用IIS如何配置WEB服务器上证书应用(SSL应用)?此应用用于提高WEB站点的安全访问级别;配置后应用站点可实现安全的服务器至客户端的信道访问;此信道将拥有基于SSL证书加密的HTTP安全通道,保证双方通信数据的完整性,使客户端至服务器端的访问更加安全;注:以证书服务器创建的WEB站点为示例,搭建WEB服务器端SSL证书应用步骤如下:1、打开IIS,WEB服务器,找到【服务器证书】并选中;(图1)2、点击【服务器证书】,找到【创建证书申请】项;(图2)3、单击【创建证书申请】,打开【创建证书申请】后,填写相关文本框,填写中需要注意的是:“通用名称”必需填写本机IP或域名,其它项则可以自行填写;注:下面的192.168.1.203为示例机IP地址,实际IP地址需根据每人主机IP自行填写;填写完后,单击【下一步】;(图3)4、默认,点击【下一步】;(图4)5、选择并填写需要生成文件的保存路径与文件名, 此文件后期将会被使用;(保存位置、文件名可以自行设定),之后点击【完成】,此配置完成,子界面会关闭;(图5)6、接下来,点击IE(浏览器),访问:http://192.168.1.203/certsrv/;注:此处的192.168.1.203为示例机IP地址,实际IP地址需根据每人主机IP自行填写;(图6-1)此时会出现证书服务页面;此网站如果点击【申请证书】,进入下一界面点击【高级证书申请】,进入下一界面点击【创建并向此CA提交一个申请】,进入下一界面,此时会弹出一个提示窗口:“为了完成证书注册,必须将该CA的网站配置为使用HTTPS身份验证”;也就是必须将HTTP网站配置为HTTPS的网站,才能正常访问当前网页及功能;(图6-2)在进行后继内容前,相关术语名词解释:HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
/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);}}和我的上一篇文章是一起写的,呵呵,大家给提点意见啊。