欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

程序员文章站 2022-05-14 18:15:07
前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端、客户端。 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务,与前篇中的不同,在DSAPI中,指令版同时包含了服务端与客户端。 先来看一下使用方法,几乎不需要太 ......

前面介绍了dsapi多功能组件编程应用-http监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于http监听的服务端、客户端。

在本篇,你将见到前所未有的超简化超傻瓜式的http监听服务,与前篇中的不同,在dsapi中,指令版同时包含了服务端与客户端。

先来看一下使用方法,几乎不需要太多的说明,当然,它是支持事件的。所谓指令版,即服务端和客户端收发都是基于短字串的,比如客户端发一个“hello“,服务端收到这个指令后返回一个”hi"。为确保传输的数据有效性,默认使用base64加密后传输,且该属性在指令版中隐藏,因为用户用不到这个属性。

建立一个指令版http监听

 

 private withevents 服务端 as new dsapi.网络相关.http监听_指令版
   with 服务端
            .绑定端口 = 2000 '绑定端口
            .参数前导符 = true  '是否使用参数前导符,意义和前篇一样
            .允许外网连接 = true '是否允许外网请求
            .启动监听()
        end with


仅仅几句代码,就完成了一个基于http监听的指令版服务端,支持的事件如下:

 

    private sub 服务端_监听已启动() handles 服务端.监听已启动

    end sub

    private sub 服务端_监听已停止() handles 服务端.监听已停止

    end sub

    private sub 服务端_收到指令(客户端 as dsapi.网络相关.http监听_指令版.监听客户端_指令版, 指令内容 as string) handles 服务端.收到指令

    end sub

    private sub 服务端_遇到错误(错误 as exception) handles 服务端.遇到错误

    end sub


处理接收到的指令

 

private sub 服务端_收到指令(客户端 as dsapi.网络相关.http监听_指令版.监听客户端_指令版, 指令内容 as string) handles 服务端.收到指令
        select case 指令内容
            case "hello"
                服务端.写入信息到指定客户端输出流(客户端, "hello,my friend")
            case "get"
                服务端.写入信息到指定客户端输出流(客户端, io.file.readallbytes("c:\1.rar"))
            case else
                服务端.写入信息到指定客户端输出流(客户端, "no")
        end select
    end sub


发来的指令内容直接在参数中提供,以便select case,同样,返回给客户端的,可以是文本,也可以是字节数组,比如一个文件。

服务端的建立和使用就是上面这些,下面演示如何建立一个指令版客户端。

 

建议一个指令版http监听客户端

 

private withevents 客户端 as new dsapi.网络相关.http监听_指令版.监听客户端_指令版

  with 客户端
            .超时时间 = 1000 '自定义超时时间
            .服务端ip或域名 = "127.0.0.1"
            .服务端端口号 = 2000
        end with


就这么简单,好了,现在看一下如何使用客户端向服务端发送一个指令并获取返回数据。

 

 

msgbox(客户端.获取数据("hello"))


一句代码,什么?就这样?是的,你没看错,就这么简单。这就是我所谓的指令版,相信你一定喜欢。