2011-06-23 63 views
8

我想托管一个Web服务器并希望使用VBA来执行此操作。这可能吗?我只是这样做,以证明某人错了,真的想要制作这个程序。是否可以在VBA中托管Web服务器?

那么有可能做一个非常简单的Web服务器(只是听取获取请求)?非常感谢帮助。

编辑

我想这样

Sub startServer() 
    Set wunsock = CreateObject("OSWINSCK.Winsock") 
    wunsock.LocalPort = 80 
    wunsock.Listen 
End Sub 

Sub wunsock_ConnectionRequest(ByVal requestID As Long) 
    If sockMain.State <> sckClosed Then 
     sockMain.Close 
    End If 
    sockMain.Accept requestID 
End Sub 

Private Sub wunsock_DataArrival(ByVal bytesTotal As Long) 
    Dim strData As String 
    sockMain.GetData strData, vbString 
    txtStatus.Text = txtStatus.Text & _ 
     strData & vbCrLf 
End Sub 

东西但是它不工作?

+8

“......证明某人有错......” - > +1 –

+0

http://社交.msdn.microsoft.com/Forums/zh-CN/isvvba/thread/a9262dc9-5e97-4b61-9fa5-014976c47527 /? –

+1

嵌入在Excel中的Web服务器。头脑非常混乱。 – anon

回答

1

我不确定我完全理解这个问题。通常,您不需要“托管Web服务器”,您可以托管一个Web站点。

但是,如果你可以用VBA做TCP套接字,那么你可以按照HTTP标准协议制作一个令人难以置信的简单网页服务器。

编辑:根据您的评论,是的,只要您可以打开TCP套接字,您就可以制作一个简单的网络服务器。

+0

我想监听一个端口上的请求到一个网页(等localhost:234/hi.html)。它不需要回复或任何东西。 – David

3

http://www.ostrosoft.com/oswinsck.asp#inst

是库的Winsock的类型可以从VBA被使用。虽然不是最有效的事情,但可以做你想做的事情。

我对你的韧劲鼓掌,希望它对你有用。

+0

Reow。感谢您的:d – David

+0

我想是这样的 子startserver的() 设置wunsock =的CreateObject(“OSWINSCK。的Winsock“) wunsock.LocalPort = 80 wunsock.Listen 结束子 子wunsock_ConnectionRequest(BYVAL的requestId只要)如果sockMain.State <> sckClosed然后sockMain.Close结束如果sockMain.Accept的requestId结束小组私人小组wunsock_DataArrival(BYVAL bytesTotal As Long)Dim strData As String sockMain.GetData strData,vbString txtStatus.Text = txtStatus.Text&_ strData&vbCrLf End Sub 但是它不起作用吗? – David

+2

@David:请不要把大量代码放在这显然难以辨认,把它作为编辑加入你的问题中,并将其格式化为'code',这次我会为你做。 –

0

你需要多少VBA? These videos演示一个C#插件被用来提供静态文件和REST请求转发到VBA代码使用Application.Run

相关问题