Windows Socket+HTTPserverclient


     Winsock是 Windows下套接字标准
        
       1.HTTP协议:


         HTTP是基于client/server的请求,响应协议。


       请求:由client向server发起,指定了要从server获取的资源。请求包括了协议首部,指明了client处理能力信息,如能够处理的文件类型,支持的语言,编码方式等。
       响应:server收到client的请求后,解析这个请求,构造响应,并发送给client。响应相同包括了协议首部,指明了server的相关信息。
         
       2.简易HTTPserver与client:


        实际中的HTTP协议,考虑到多种需求,协议具有一定的复杂性,这里我们仅仅实现一个简单的HTTPserver与client,重在理解HTTP协议的工作原理。
         Winsock编程下,client通过socket向client发送一段数据(即请求),这段数据包括了client请求的资源(即文件)。
        client收到这段数据后,对这段数据进行处理(即解析URL),提取client请求的资源名,依据资源名找到server资源,将资源与其它信息处理后(即响应)发送给client。
         
       3.HTTPserver与client实质:


        HTTP协议是建立在socket之上的,本质上是两个程序通过socket相互发送数据。HTTP协议,规定了发送方发送数据的格式以及接受方怎样使用接受的数据。实现HTTPserver与client,HTTP协议的实现体如今双发对发送与接受数据的处理上。最简单的样例,client向server发送一个"GET
1.html"数据,server收到数据后,解读"GET 1.html",明确client想得(GET)到1.html文件,server将1.html文件的内容发送给client,client接收到含1.html文件内容的数据后,新建1.html文件并写入server端发送来的数据。


         4.牛刀小试
         先在VC6.0中执行server,再打开一个VC6.0执行client。




         执行效果:
          经常使用的浏览器也是client,显然我们的client仅仅是简单的将html文件内容打印,浏览器则会按HTML规则处理html文件然后显示。


server与client參考了《Winsock网络编程经络》
client程序:

server程序:

最新文章

  1. 腾讯云CentOS Apache开启HTTPS
  2. 2016HUAS暑假集训题1 J - 迷宫问题
  3. CMSIS OS None
  4. 从一个例子中体会React的基本面
  5. Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)
  6. PDF 补丁丁 0.4.1.820 测试版发布:统一PDF的页面尺寸
  7. php get set方法深入理解
  8. 关于android中EditText边框的问题 下划线
  9. 基于jQuery美化联动下拉选择框
  10. jquery中ajax向action传递对象参数,json ,spring注入对象
  11. Unix/Linux环境C编程入门教程(36) 初识shell
  12. Unity 之 Redux 模式(第二篇)—— Rigidbody 改造,摄像机控制
  13. MySQL 5.7 重置root默认密码
  14. C# for循环嵌套
  15. Node.js web快速入门 -- KoaHub.js
  16. .net开源权限管理系统
  17. 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
  18. RabbitMQ,为应对消息从发送到消费,各个环节消息丢失的解决方案
  19. java8 Stream sorted()的一次调用链记录
  20. InnoDB,5项最佳实践,知其所以然?

热门文章

  1. windows下同时安装python2和python3
  2. python基础学习之路No.3 控制流if,while,for
  3. Tango ROS Streamer
  4. MySQL学习笔记:生成一个时间序列
  5. kylin加载hive表错误:ERROR [http-bio-7070-exec-10] controller.TableController:189 : org/apache/hadoop/hive/conf/HiveConf java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf 解决办法
  6. scp和rsync的区别和常用参数
  7. 使用 Python 可以做什么?
  8. 300万大奖:欢迎参加美团联合主办的全球AI挑战赛
  9. tomcat如何利用waf进行防护
  10. Android四大组件-服务