以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多个服务器启动之后,如何用HttpServer.Close()只判断当前行启动的服务器ip及端口与是否打开,然后关闭它,而不是把之前打开的web服务全部关闭!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146636)

--  作者:李孝春
--  发布时间:2020/2/28 11:27:00
--  多个服务器启动之后,如何用HttpServer.Close()只判断当前行启动的服务器ip及端口与是否打开,然后关闭它,而不是把之前打开的web服务全部关闭!
多个服务器启动之后,如何用HttpServer.Close()只判断当前行启动的服务器ip及端口与是否打开,然后关闭它,而不是把之前打开的web服务全部关闭!

窗体表双击事件代码如下:
If HttpServer.IsRunning Then
    HttpServer.Close()
    
Else
    HttpServer.Prefixes.Add("http://" & e.Table.Current("服务器ip") & ":" & e.Table.Current("服务器端口") & "/")
    HttpServer.Start()
End If
窗体表图片

图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/2/28 11:34:00
--  
这个没有办法的,只能全部关闭,然后重新启动需要的ip和端口。这个关闭启动是瞬间完成的,应该不会有多大影响
--  作者:李孝春
--  发布时间:2020/2/28 13:17:00
--  回复:(有点蓝)这个没有办法的,只能全部关闭,然后...
那有没有办法  直接启动这个窗体表中所有的IP及对应的端口呢?
--  作者:有点蓝
--  发布时间:2020/2/28 14:56:00
--  
代码是自己写的,想加多少个就加呗

HttpServer.Prefixes.Add("第一个地址")
HttpServer.Prefixes.Add("第二个地址")
……
HttpServer.Prefixes.Add("第N个地址")

--  作者:李孝春
--  发布时间:2020/2/28 15:02:00
--  回复:(有点蓝)代码是自己写的,想加多少个就加呗Ht...
有点蓝老师  这样一行一个添加有点麻烦哦  万一有好几十个 那就悲催了
--  作者:有点蓝
--  发布时间:2020/2/28 15:22:00
--  
如果数据是保存到表格里的,遍历所有行咯。
--  作者:李孝春
--  发布时间:2020/2/28 16:12:00
--  回复:(有点蓝)如果数据是保存到表格里的,遍历所有...
有点蓝老师  现在代码如下:
HttpServer.Close()
For Each dr As Row In Tables("Http服务_Table1").Rows
    HttpServer.Prefixes.Add("http://" & dr("服务器ip") & ":" & dr("服务器端口") & "/")
    HttpServer.WebPath =  dr("服务器目录")  \'指定静态文件存储位置
    HttpServer.Start()
    output.Show("http://" & dr("服务器ip") & ":" & dr("服务器端口") & "/")
    Dim Proc As New Process \'定义一个新的Process
    Proc.File = "http://" & dr("服务器ip") & ":" & dr("服务器端口") & "/" \'指定要打开的网页地址
    Proc.Start()
Next

基本可以实现遍历所有表中的数据  并且对应打开服务

有没有更简单的写法呢?
上述思路是:
先关闭所有的web服务,然后再遍历Http服务_Table1中的字段 然后打开

--  作者:有点蓝
--  发布时间:2020/2/28 16:52:00
--  
不管有多少个ip,只能设置一个WebPath和启动一次
HttpServer.Close()
For Each dr As Row In Tables("Http服务_Table1").Rows
    HttpServer.Prefixes.Add("http://" & dr("服务器ip") & ":" & dr("服务器端口") & "/")
    output.Show("http://" & dr("服务器ip") & ":" & dr("服务器端口") & "/")
    Dim Proc As New Process \'定义一个新的Process
    Proc.File = "http://" & dr("服务器ip") & ":" & dr("服务器端口") & "/" \'指定要打开的网页地址
    Proc.Start()
Next
    HttpServer.WebPath =  dr("服务器目录")  \'指定静态文件存储位置
    HttpServer.Start()