Open Socket Question

Alex Tweedly alex at tweedly.net
Wed Feb 27 11:40:54 EST 2008


Dave wrote:
>
> 3)  In my App, a Server is only allowed to Accept connections from 
> Certain Clients (this is controlled by the IP Address and a Value 
> passed to the Server in the Connection Request).  This is my Accept code:
>
> function IStartServer theServerPortNumber
>
>   --
>   --  Accept Connection(s) from Client(s)
>   --
>   accept connections on theServerPortNumber with message 
> "ISMServerContactedByClient"
>
>   return empty
> end IStartServer
>
> on ServerContactedByClient theIPAddress
>   local myResult
>
>   --
>   --  Check for Error
>   --
>   put the result into myResult
>   if myResult <> empty then exit ServerContactedByClient
>   read from socket theIPAddress for kPacketCountSize chars with 
> message "ISMServerReceivedPacketSize"
>
> end ServerContactedByClient
>
> Can I just look up "theIPAddress" in "ServerContactedByClient" and if 
> it's not in the list of valid Clients, do do an "exit 
> ServerContactedByClient" to ignore the request?
>
>
That would kind of work, because you neither read from, nor write to, 
the socket, so the connection isn't 'active'. However, the connection 
will still be open, so you really ought to do "close theIPAddress"    
(btw, I think the documentation is misleading. It says the parameter to 
the handler called when the connection is open contains the IP Address, 
when in fact it contains the socket descriptor - typically an IP Address 
and port, but sometimes IP Addr + port + connectionID. I find it 
confusing to name that parameter "theIPAddress"; I always call it 
pSocket :-).


Also, I'm curious.This is probably just because you've snipped code to 
send it here, but just in case it isn't ....

you look at "the result" immediately - what do you expect it to contain 
at that point ?


-- 

Alex Tweedly      mailto:alex at tweedly.net      www.tweedly.net




More information about the use-livecode mailing list