Socket Accept/Connection Question/Problem
Dave
dave at looktowindward.com
Thu Feb 28 08:04:50 EST 2008
Hi All,
I am using Sockets to communicate between Applications. In this
example, one Application is a "Server" and the other is a "Client".
The Server issues a connected command and specifies a Callback
handler as so:
accept connections on theServerPortNumber with message
"ServerContactedByClient"
on ServerContactedByClient theIPAddress
local myClientIPAddress
local myResult
put the result into myResult
if myResult <> empty then
breakpoint
exit ServerContactedByClient
end if
set the itemDelimiter to ":"
put item 1 of theIPAddress into myClientIPAddress
if myClientIPAddress is not among the lines of
sgServerClientAllowList then
close socket theIPAddress
end if
read from socket theIPAddress for 8 chars with message
"ServerReceivedPacketSize"
end ServerContactedByClient
I am testing the error handling when a Client tries to connect but
that server doesn't allow it to connect. The
"ServerContactedByClient" gets called and the IP address is NOT is
present in the "sgServerClientAllowList" (a Script Global), so the
close socket is executed. However on the Client I have the following
code:
open socket mySocketAddress with message "ClientSocketOpen"
on ClientSocketOpen theIPAddress
local myConnectString
local myConnectionID
local myResult
put the result into myResult
if myResult <> empty then
breakpoint
exit ClientSocketOpen
end if
--
-- Send the Connect Message, Start with the Count
--
put "Connect," & myConnectionID into myConnectString
write myConnectString to socket theIPAddress with message
"ClientSocketConnectionDataSent"
end ClientSocketOpen
The "ClientSocketOpen" handler is called but the
"ClientSocketConnectionDataSent" handler is never called, as I would
expect, since the Server closed the Socket, however, the socketError
or sockTimeout handler are not called either?
My question is, how can the Client tell if the connection has been
successful or not?
Thanks a lot
All the Best
Dave
More information about the use-livecode
mailing list