VbScript:使用“Adodb.Stream”获取服务器状态

时间:2014-08-24 13:12:47

标签: vbscript stream connection

如何使用VbScript从Shoutcast流媒体服务器获取状态? 我越接近就是:

Dim xHttp: Set xHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
Dim bStrm: Set bStrm = CreateObject("Adodb.Stream")
xHttp.Open "GET", "http://www.partyvibe.com:8010", False
xHttp.Send
with bStrm
    .type = 1 'binary
    .open
    msgbox xHttp.responseBody
    msgbox .state
end with

但它实际上并不起作用,因为流永远不会完成'打开'它是一个连续的无线电流。

我想只检索流的几个第一个字节以了解服务器响应。 (例如:服务器已关闭,服务器正在流式传输,超时,......)

http://www.partyvibe.com:8010

它也可能不是Shoutcast服务器。

1 个答案:

答案 0 :(得分:0)

以下是解决方案:

Const TIMEOUT = 5000
Dim xHttp: Set xHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
Dim url: url = "http://www.partyvibe.com:8010"

xHttp.Open "GET", url, True
xHttp.setRequestHeader "User-Agent", "Winamp/5.x"
xHttp.Send

WScript.sleep TIMEOUT


If (xHttp.readyState<>3) then
    msgbox "Stream server is not responding!"
end if

.readyState refrence: http://msdn.microsoft.com/en-us/library/ms761388%28v=vs.85%29.aspx

  • (1)加载--------&gt;超时
  • (4)已完成------&gt;如果服务器仍在流式化,则不应该完成