1 (изменено: dandyd, 2011-11-10 15:59:38)

Тема: VBA: Не могу открыть порт Winsock

Добрый день

Не могу в VBA Excel открыть порт Winsock

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Set ws = CreateObject("MSWinsock.Winsock")
ws.RemoteHost = "192.168.1.1"
ws.RemotePort = 9013
ws.Connect
Do While (ws.State <> 7)
  Sleep 200
Loop

Объект нормально создается, но
ws.State стоит в состоянии - sckConnecting  6  "Connecting",
а в состояние - sckConnected  7  "Connected"
не переходит.
Стандартным телнетом (telnet 192.168.1.1 9013) и из VBScript порт открывается нормально, читаются с него данные.

Заранее спасибо за ответ

2 (изменено: dandyd, 2011-11-13 06:44:00)

Re: VBA: Не могу открыть порт Winsock

dandyd пишет:

Добрый день

Не могу в VBA Excel открыть порт Winsock

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Set ws = CreateObject("MSWinsock.Winsock")
ws.RemoteHost = "192.168.1.1"
ws.RemotePort = 9013
ws.Connect
Do While (ws.State <> 7)
  Sleep 200
Loop

Объект нормально создается, но
ws.State стоит в состоянии - sckConnecting  6  "Connecting",
а в состояние - sckConnected  7  "Connected"
не переходит.
Стандартным телнетом (telnet 192.168.1.1 9013) и из VBScript порт открывается нормально, читаются с него данные.

Докопался: Волшебное слово "DoEvents"

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Set ws = CreateObject("MSWinsock.Winsock")
ws.RemoteHost = "192.168.1.1"
ws.RemotePort = 9013
ws.Connect
Do While (ws.State <> 7)
  DoEvents
  Sleep 200
Loop

Так работает.
Тема закрыта.