最近实在是太忙了.忙到这篇教程都是抽出时间来写的.这是我又挖的一个坑.这个系列叫做模块 去 死.教程的内容就是经常需要用到的模块中的某些命令实现.以此来抛 弃 该 死 的模块.让模块这种东西跟着MFC和VC++6.0一起去陪 希 特 勒 和 秦 始 皇 这个系列教程.除了易语言核心支持库以外.尽量不依赖任何任何的支持库.包括官方提供的.能避免的尽量避免.第三方支持库可以的话.全部抛弃,尽量用纯win32API和易语言标准库来实现各种操作 这个教程是这个坑的第一期.我还有一个坑是windows开发入门到死亡的.还没填…太忙,最近在跟PG和64下面的SSDT刚正面 废话不多说,我直接上代码了 .版本 2 [/align ].支持库 Krnlnex 窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
客户1. 连接 (“www.ockdieso.com”, 80 )客户1. 发送数据 (到字节集 (“GET /index.jsp HTTP/1.1” + #换行符 + “Connection:close” + #换行符 + “Host:www.ockdieso.com” + #换行符 + #换行符 )) a = 客户1. 取回数据 ()调试输出 (到文本 (a )) .支持库 Krnlnex
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 a, 文本型
客户1.连接 (“www.ockdieso.com”, 80)
客户1.发送数据 (到字节集 (“GET /index.jsp HTTP/1.1” + #换行符 + “Connection:close” + #换行符 + “Host:www.ockdieso.com” + #换行符 + #换行符))
.子程序 _客户1_数据到达
.局部变量 a, 字节集
a = 客户1.取回数据 ()
调试输出 (到文本 (a)) 对,你没看错,就这3行代码.搞定了http读文件的工作.只需要这3行代码.以后GET访问根本不需要什么模块和支持库.自己就能搞定 现在来一行一行的分析代码 (我从来没给零基础写过教程.看不懂的,回去看书补知识) 第一行: 客户1.连接(“www.ockdieso.com”,80) 这个不需要说.会用标准库的客户端服务端都了解这个.第一个参数域名或者IP.第二个参数端口 注意,虽然大部分服务器都默认HTTP端口为80,但不是全部.例如tomcat.默认端口为8080 客户1.发送数据(到字节集 (“GET /index.jsp HTTP/1.1”+#换行符+“Connection:close”+#换行符+“Host:www.ockdieso.com”+#换行符+ #换行符)) 这行就需要讲一讲了 首先我们做的事情可以概括为send发送数据 但是这发送的数据内容就有些意思了 要知道.HTTP协议是基于TCP/IP协议的 而易语言标准库帮我们封装了很多TCP/IP的东西.这样一来,我们只需要在这层封装上.自己实现以下HTTP协议即可 首先,到字节集.这个就不用说了.貌似不是必须. 第一个HTTP协议头GET/index.jsp HTTP/1.1表示GET访问,/index.jsp表示访问的URI (注意.URL和URI并不是一个东西.具体可以百度) 最后,HTTP协议版本1.1,这些东西基本固定就可以了 然后Connection:close.这里还是有点学问的.如果你选着的是保持连接.那么会出一些小小的毛病,而且有时候,他必须使用保持连接.有兴趣的可以自己去实验一下 Host:www.ockdieso.com这个就不多说了.指明地址 重点还有一个地方.也就是换行符 每一个HTTP协议头,都会用换行符来分割开.在C/C++表示为\r\n.而HTTP协议头结束的标志.是\r\n\r\n,也就是2个换行符.这点是必须的.不信你可以去掉换行符试试.服务器会认不出来你发送的消息的 那么最后. a =客户1.取回数据() 取回数据.最后调试输出.就搞定了
OK.以后如果你需要用到网页访问的时候.你大可 抛 弃 模 块 让他们 去 死.自己手动实现这个功能了 当然.很多HTTP头的字段还是需要自行掌握的.比如POST和GET提交的东西就不一样,这个需要你们研究研究HTTP协议. 不过,至少如果你只是想读一个HTTP头.或者HTTP源文件.那么你现在可以让模块 去 死 了. 这一期教程只做一个开头而已.下一期.我可能会带你们用winhttp作成一个属于自己的网页访问 不过当然也可能是教你如何不用支持库.自行实现mysql增删查改等等.也可能下一期更新win开发入门到死亡去了 最后.你需要知道的是,模块这种东西.并不是不能用,而是不能依赖 PS:最后放个公告...CGDLL的读文件有严重问题,暂时别用了.下次更新修BUG.外加64位驱动级隐藏进程防杀进程(64下隐藏进程).目前跟PG打的热火朝天,胜利就在眼前
|