chat and socket

Mark Schonewille m.schonewille at economy-x-talk.com
Sun Feb 1 09:02:35 EST 2009


Hi Serge,

No, you don't do this with the idle handler. You could create a  
button, which which accepts connections on a partular port. As soon as  
data is detected, a message is sent to the button, which triggers a  
handler. For example:

on mouseUp
   accept connections on port 1234 with message "foo"
end mouseUp

on foo theIP,theMsg
    beep
    put "You recieved the message:" && quote & theMsg & quote &&  
"from:" && theIP && "at" && the long time into fld "Received Messages"
    close socket theIP
end foo

On the client machine, you could create a stack with a button,  
containing the following script:

constant kSock = "192.168.0.1:1234"
on mouseUp
   open socket to kSock
   write "hello" to socket kSock
   close socket kSock
end mouseUp

This is a good way to start experimenting. Once this works, you could  
modify your scripts to keep the connection alive. You do this by  
reading from socket theIP with message "foo" again, instead of closing  
the socket. However, you need to make sure that the socket is closed  
if the client gives a signal to do so.

--
Best regards,

Mark Schonewille

Economy-x-Talk Consulting and Software Engineering
http://economy-x-talk.com
http://www.salery.biz
Dutch forum: http://runrev.info/rrforum

We are always looking for new projects! Feel free to contact us to  
discuss your custom software project!

On 1 feb 2009, at 14:18, Serge Brami wrote:

> I want to create une simple Chat application between  2 users in a  
> LOCAL NETWORK
>
> For that I create 2 stacks  one  for each user
>
>
> I create fields to store the messages to be sent and to be received
> I create controls to Open and close socketsocket
>
> I can create control  to write to socket  (for sending messages)
>
> But How to receive the messages ?
> Yes i can create a button for reading from socket , but I want  to  
> receive automatically the messages that have been sent
>
> It would be possible using an Idle handler ( on idle ,read from  
> socket -end idle) but this would slow down my application
>
> Is there another way
>
> Thanks for help
>
>
> Serge BRAMI




More information about the use-livecode mailing list