程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> socket-VBS中Socket通過TCP協議發送數據

socket-VBS中Socket通過TCP協議發送數據

編輯:編程解疑
VBS中Socket通過TCP協議發送數據

問題是一個接著一個:
在使用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 錯誤

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved