On Sunday, February 16, 2003, at 12:20 PM, Mike Doub wrote:

Has anyone developed any code to get mail via POP3? I seem to be having
problems reopening a socket.
Here are some comments that address this as a generic client-to-server TCP problem.

Often servers will allow multiple connections, but I would not be surprised if a server declined multiple connections from the same client computer or declined immediate reconnection or declined a connection based on a security trigger. So, as Sarah said, make sure you close your connection.

Not closing a connection can cause confusion in callbacks; you might be responding to the wrong connection.

Handle callbacks (except maybe timeout, depending on your style).

It is easy to add a connectionID to the socketID, so you may want to do this even if you are not (intentionally) making multiple connections. You can use this as a double check in callbacks and as extra debug information. (One way is to use a script local variable for all socketID references and to tag on a serial number when you set the variable.) I'm referring to the entire "10.20.0.1:123|POP300001" as the socket ID and "POP300001" as the connection ID in that example; I hope I'm not misusing Revolution nomenclature.

In debug logs I report the result as well as the sysError. Those familiar with your platform might help you with the sysError values. I also log the long time or milliseconds since the open (attempt). This time can give a clue. For example, a nine-second delay in the open error callback on Windows normally means the connection was refused. Log the socket closed and socket error callbacks.

If you close a connection and immediately open a connection, there might be some confusion on OS X; use a connectionID to sort out callbacks.

There are some platform differences. A minor one is the delay should the target computer not exist or be unreachable. This is about 21 seconds on my XP, but 75 seconds on my OS X. One difference more likely to cause confusion is related to callbacks.

For example, for Revolution 2.0, this was reported for an Alpha version:
OS X and XP still have different callback behavior for TCP in some cases...
OS X XP
Open Refused socketClosed socketError
Open Timeout socketClosed socketError
Local Close socketClosed none
I believe the situation is similar with Revolution 1.1.1.

I don't believe this will change soon; scriptors should adapt.

Note that socketClosed is called instead of socketError on OS X. Also, note that you can get a callback on a socket after you close it.

If you _want_ to have multiple connections, let us know.

I realize this is a general shotgun response. The point of error and the error information can help us be more specific in responding.

Dar Scott










_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Reply via email to