以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何遍历去重,并根据遍历去重的port启动多个不同的http服务,实现对应的函数页面对应port进行指定地址的访问 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=164888) |
-- 作者:cnsjroom -- 发布时间:2021/5/7 23:19:00 -- 如何遍历去重,并根据遍历去重的port启动多个不同的http服务,实现对应的函数页面对应port进行指定地址的访问 如何遍历去重,并根据遍历去重的port启动多个不同的http服务,实现对应的函数页面对应port进行指定地址的访问 内部函数表有如下字段: 函数名称 类别 port Dim dt As DataTable = DataTables("内部函数表") For Each dr As DataRow In dt.DataRows If dr.Isnull("port") Then output.show("http://127.0.0.1/" & dr("函数名称") & "." & dr("类别")) Else output.show("http://127.0.0.1:" & dr("port") & "/" & dr("函数名称") & "." & dr("类别")) End If Next 运行得到 http://127.0.0.1/utf8.htm http://127.0.0.1:3000/sem.htm http://127.0.0.1/default.htm http://127.0.0.1/jihua.htm http://127.0.0.1/jihua2.htm http://127.0.0.1/mail.htm http://127.0.0.1/mailQQ.htm http://127.0.0.1/计划.htm http://127.0.0.1:3001/测试.htm http://127.0.0.1/删除附件地址.htm 怎么实现在遍历的时候去除重复值呢?【红色部分代码怎么修正,让输出的结果只有0,3000,3001三个值】 Dim dt As DataTable = DataTables("内部函数表") For Each dr As DataRow In dt.DataRows output.show(dr("port")) Next 运行得到: 0 3000 0 0 0 0 0 0 3001 0 便于在启动http服务的时候根据获取得到的0,3000,3001三个值对应启动三个服务。 Dim dt As DataTable = DataTables("内部函数表") For Each dr As DataRow In dt.DataRows If dr.Isnull("port") Then HttpServer.Extensions.Add("http://127.0.0.1/" ) Else HttpServer.Extensions.Add("http://127.0.0.1:" & dr("port") & "/" ) End If Next 只根据0,3000,3001三个值对应启动三个服务: http://127.0.0.1/ http://127.0.0.1:3000/ http://127.0.0.1:3001/ 进而实现直接打开如下链接 http://127.0.0.1/utf8.htm http://127.0.0.1:3000/sem.htm http://127.0.0.1/default.htm http://127.0.0.1/jihua.htm http://127.0.0.1/jihua2.htm http://127.0.0.1/mail.htm http://127.0.0.1/mailQQ.htm http://127.0.0.1/计划.htm http://127.0.0.1:3001/测试.htm http://127.0.0.1/删除附件地址.htm [此贴子已经被作者于2021/5/7 23:31:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/5/8 9:04:00 -- 利用集合判断去重 Dim dt As DataTable = DataTables("内部函数表") dim lst as new list(of string) dim s as string For Each dr As DataRow In dt.DataRows If dr.Isnull("port") Then s = "http://127.0.0.1/" & dr("函数名称") & "." & dr("类别") Else s= "http://127.0.0.1:" & dr("port") & "/" & dr("函数名称") & "." & dr("类别") End If if lst.contains(s) = false lst.add(s) output.show(s) end if Next |
-- 作者:cnsjroom -- 发布时间:2021/5/8 9:53:00 -- 回复:(有点蓝)利用集合判断去重Dim dt As DataTabl... Dim dt As DataTable = DataTables("内部函数表") Dim lst As new List(of String) HttpServer.Close() For Each dr As DataRow In dt.DataRows If lst.contains(dr("port")) = False lst.add(dr("port")) If dr("port")=0 Then output.show(dr("port")) HttpServer.Prefixes.Add("http://127.0.0.1/" ) HttpServer.Start() Else output.show(dr("port")) HttpServer.Prefixes.Add("http://127.0.0.1:" & dr("port") & "/" ) HttpServer.Start() End If End If Next 老师你好 根据你的指导 现在代码如上: 初步实现启动0,3000,3001三个端口的http服务了。 在查询帮助文档中
If httpserver.IsRunning = True Then MessageBox.Show("1") End If 这个代码可以弹出1,说明http服务是已经运行了,有没有办法完善代码,让之判断是哪一个端口的服务已经运行了呢,这样好实现已经运行的关闭,没有运行的启动。
|
-- 作者:有点蓝 -- 发布时间:2021/5/8 10:08:00 -- 没有办法判断,整个停掉,加上新的地址全部重新启动即可 |