問題是一個接著一個:
在使用MSWINsock.Winsock通過TCP發送數據到Server的時候,提示如下錯誤:
代碼如下:
Dim sock,socket
'賦值sock變量為WINSOCK的對象
Set sock = Wscript.createobject("MSWINsock.Winsock")
sock.Protocol = 0
sock.RemoteHost = "10.185.59.51"
sock.RemotePort = "9991"
sock.Connect
Wscript.sleep 1
sock.SendData msglog ------- 148行代碼
sock.Close
哪位大神遇到過?求助
經過多次嘗試已經解決,並不是sendData只能使用UDP,對TCP同樣可以使用。
但是因為TCP是面向連接的可靠性協議,所以需要等待連接狀態為connected之後才可以發送數據。
因此增加了等待時間,並且判斷狀態,從而解決了此問題。
Dim sock,socket
'賦值sock變量為WINSOCK的對象
Set sock = Wscript.createobject("MSWINsock.Winsock")
sock.Protocol = 0
sock.RemoteHost = "10.185.59.51"
sock.RemotePort = "9991"
sock.Connect
Wscript.sleep 2000
if sock.state=7 then
sock.SendData msglog
Wscript.sleep 10
end if
sock.Close
在判斷狀態時采用循環應該更好,設定間隔時間來檢測狀態應該會更好。
附狀態代碼意義:
sckClosed 0 缺省的。關閉
sckOpen 1 打開
sckListening 2 偵聽
sckConnectionPending 3 連接掛起
sckResolvingHost 4 識別主機
sckHostResolved 5 已識別主機
sckConnecting 6 正在連接
sckConnected 7 已連接
sckClosing 8 同級人員正在關閉連接
sckError 9 錯誤