ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   winsock lag error (https://www.excelbanter.com/excel-programming/322757-winsock-lag-error.html)

[email protected]

winsock lag error
 
I'm trying to make a VBA function in Excel which, given a unix command,
connects to a server I have created, runs the command, and then returns
the output. I have already written the server.

Example: A cell formula =UnixRun("echo hi") should have a value of
"hi".


Problem: My code (pasted below) works fine when I place a breakpoint at
the line "Do", then hit F5 to continue immediately after arriving
there. But if I run the code directly without a breakpoint, no data
ever comes through. I considered that the breakpoint may be allowing a
delay for the winsock object to start returning data, but even if I
enter a 3 second delay at the exact same point in the code as the break
point, still no data comes through. Therefore, I think the problem is
in the Winsock object. Any ideas to get around this? thx

Code:
If m_objWS.State = sckConnected Or m_objWS.State = sckOpen Then
m_objWS.SendData command & Chr(10)
DoEvents
' *** If I place the breakpoint on the next line, it works
' *** Without the break point, errCount increments to 100,000
' *** Adding in a 3 second wait instead of the
' *** breakpoint also fails.
Do
DoEvents
' first 4 bytes return a code for the #
' # of bytes to expect in this packet
m_objWS.PeekData output, vbString, 4
If (Len(output) = 4) Then
m_objWS.GetData output, vbString, 4
sizePacket = interpret_code(output)
m_objWS.GetData output, vbString, sizePacket
totalOutput = totalOutput & output
Else
' loop in case data hasn't arrived
sizePacket = 1
errCount = errCount + 1
End If
Loop While sizePacket 0 And errCount < 100000



All times are GMT +1. The time now is 05:21 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com