Mark:
I’ve been following this thread with interest. Thanks for the code. Now I’m 
wondering how I might use this capability. Can I set up a multi-user game using 
this? I must have to somehow get the user’s ip address. There are probably 
samples in the Livecode examples library and I’ll search around for one.
Best,
Bill

> On May 9, 2015, at 10:54 AM, Mark Waddingham <[email protected]> wrote:
> 
>> My sequence is that the client connects to the server, and then sends it
>> periodic messages.  On the initial connection, the server creates a
>> database connection and leaves it open (opening a database takes time
>> measured in hundreds of milliseconds).   The approach of opening and
>> closing a database on each transaction simply isn't a realistic option for
>> me.
> 
> All the socket commands can be used in a non-blocking, message-based way.
> 
> When you 'accept connections' you create a listening socket whose purpose is 
> to wait for connections and then supply you with a 'normal' socket to talk to 
> the client which connected. The listening socket will continue to persist 
> after this (until you close it) continuing to wait for new connections from 
> clients.
> 
> So an outline of an example (which assumes on receiving data from the client 
> you need to send it something):
>  on startServer
>    accept connections ... with message "newClient"
>  end startServer
> 
>  on newClient pClientSocket
>    read from pClientSocket ... with message "clientDataReceived"
>  end newClient
> 
>  on clientDataReceived pClientSocket, pData
>    ... process pData ...
>    write ... to socket pClientSocket with pData with message "clientDataSent"
>  end clientDataReceived
> 
>  on clientDataSent pClientSocket
>    read from pClientSocket ... with message "clientDataReceived"
>  end clientDataSent
> 
> The idea here is that each time you get a 'newClient' message you have a 
> newly named socket 'pClientSocket' which is the other end of the connection 
> the client initiated. You can have as many of these client-connected sockets 
> as you like, and independently read / write to them with messages sent when 
> the action you request completes.
> 
> If you use the blocking form of the socket commands then (as they don't 
> dispatch messages whilst blocking) you can basically only talk to one client 
> at a time. The blocking form may well be fine for a client, if it is 
> connecting to a server, interacting with some sort of linear protocol and 
> then closing the connection; but for a server that wishes to handle multiple 
> clients simultaneously it is a much better idea to use the messaging form.
> 
> Hope this helps,
> 
> Mark.
> 
> -- 
> Mark Waddingham ~ [email protected] ~ http://www.livecode.com/
> LiveCode: Everyone can create apps
> 
> _______________________________________________
> use-livecode mailing list
> [email protected]
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to