Windows Socket+HTTP服务器客户端
Winsock是 Windows下套接字标准。
1.HTTP协议:
HTTP是基于客户端/服务器的请求,响应协议。
请求:由客户端向服务器发起,指定了要从服务器获取的资源。请求包含了协议首部,指明了客户端处理能力信息,如可以处理的文件类型,支持的语言,编码方式等。
响应:服务器收到客户端的请求后,解析这个请求,构造响应,并发送给客户端。响应同样包含了协议首部,指明了服务器的相关信息。
2.简易HTTP服务器与客户端:
实际中的HTTP协议,考虑到多种需求,协议具有一定的复杂性,这里我们只实现一个简单的HTTP服务器与客户端,重在理解HTTP协议的工作原理。
Winsock编程下,客户端通过socket向客户端发送一段数据(即请求),这段数据包含了客户端请求的资源(即文件)。
客户端收到这段数据后,对这段数据进行处理(即解析URL),提取客户端请求的资源名,根据资源名找到服务器资源,将资源与其他信息处理后(即响应)发送给客户端。
3.HTTP服务器与客户端实质:
HTTP协议是建立在socket之上的,本质上是两个程序通过socket相互发送数据。HTTP协议,规定了发送方发送数据的格式以及接受方如何使用接受的数据。实现HTTP服务器与客户端,HTTP协议的实现体现在双发对发送与接受数据的处理上。最简单的例子,客户端向服务器发送一个"GET
1.html"数据,服务器收到数据后,解读"GET 1.html",明白客户端想得(GET)到1.html文件,服务器将1.html文件的内容发送给客户端,客户端接收到含1.html文件内容的数据后,新建1.html文件并写入服务器端发送来的数据。
4.牛刀小试:
先在VC6.0中运行服务器,再打开一个VC6.0运行客户端。
运行效果:
常用的浏览器也是客户端,显然我们的客户端只是简单的将html文件内容打印,浏览器则会按HTML规则处理html文件然后显示。
服务器与客户端参考了《Winsock网络编程经络》
客户端程序:
服务器程序: