sockets
Dar Scott
dsc at swcp.com
Wed Jul 10 15:50:01 EDT 2002
On Wednesday, July 10, 2002, at 01:41 PM, Larry Forsgren wrote:
> Correct, server contains "mailsever:110".
> I logged the results to a field but it came up empty.
> The sysError is 0 which I don´t know what it means.
> The actual code as it looks currently is below.
> It does not matter if I change to a different mail server.
>
> on revPOP_connect
> # Description..: connects to the mail account
> # Parameter...: "server, user, losen"
> set socketTimeoutInterval to 1000
> put item 1 of param(1) & ":110" into server
> put item 2 of param(1) into user
> put item 3 of param(1) into losen
> open socket server
> read from socket server until linefeed
> if offset("+OK",it) is zero then
> answer the sysError
> close socket server
> answer "No connection!"
> else
> put "Connected to" && server & return into field id 1004
> write "USER" && user to socket server
> read from socket server until linefeed
> put return & it after field id 1004
> end if
> end revPOP_connect
>
The sysError is meaningful in some cases (all sockets) if result is
not empty. For this case it will be a Winsock error code.
You may need to step back and do a little more on diagnostics.
Add a multiline field named "log", maybe with a scrollbar. (I
would also make a test button on a different card that does the
bare i/o, but you can do this in your code if you want.)
Add this:
on clearLog
put empty into field "log"
-- clear base for long seconds if you add that later
end clearLog
on logIt loggedEvent
-- add putting long seconds delta into log if you want
-- add other info if you want
put loggedEvent & linefeed after field "log"
-- add openSockets if you want
-- add something to force scrolling if you want
end logIt
on logResult loggedEvent, resultVal, sysErrVal
logIt loggedEvent & " " \
& "result = " & quote & resultVal & quote & " " \
& "sysErro = " & sysErrVal
end logIt
on socketError socketID, errorString
logIt "socketError " & socketID & " error = " & quote &
errorString & quote
end socketError
on socketClosed socketID
logIt "socketClosed " & socketID
end socketClosed
on socketTimeOut socketID
logIt "socketTimeOut " & socketID
end socketTimOut
Those are off the top of my head and may have errors. Put them in
the path where they will be found for callbacks. The stack should
work.
Call clearLog at the top of your handler. You can call it from a
button instead; if you do you still might want to set the timer
offset at the top of your handler.
Call the logResult after EVERY socket command with the appropriate
parameters, like this:
logResult "open", the result, the sysError
Use logIt to log the results of read, what you write and so on. If
you add the timer, use it whenever you need to log the timer value.
Send results to the list.
Dar Scott
More information about the use-livecode
mailing list