Socket stuff

Dar Scott dsc at
Mon Mar 18 13:15:01 EST 2002

On Monday, March 18, 2002, at 09:44 AM, JohnRule at wrote:

> I do not have this problem with other 'maintained'
> TCP socket connections for other net devices...only between computers.
> Is my concept wrong?

I'm going to take a stab in the dark concerning what may be wrong.  
Here are some comments regarding TCP.

The two ends of a TCP connection are not the same.  One end 
initiates the connection.  In the socket model, this difference is 
emphasized more.

The end that initiates the connection is often called the client.  
The other is the server.

The TCP server "listens" for connections on a port and, when a 
request comes in, it may "accept" it and create a new socket to go 
with the connection.  It may have more than one connection and thus 
more than one socket on that port.  The remote address and port 
makes them unique.

When you connect to "other net devices", you are probably 
connecting as a client.  You would be using the Revolution command 
"open socket".

You can connect to another Revolution application the same way.  
However, the other end must be a server.  You open that with 
accept.  The accept spawns an opening of a new socket whenever a 
request comes in.  There is no attempt to open one for 
communication until then.  Since you have no socket handle until 
the connection comes in, you cannot write until a connection is 
made.  And it would make no sense to do so.

Writing the server end takes a little bit of more work than writing 
the client end, especially if you want to handle more than one 

A simple trick of using two connections can be used to make the 
link between two applications symetrical.

An alternate TCP/IP protocol is the UDP protocol.  This allows you 
to send entire messages (not just bytes in a stream) to some port 
on some computer.  Your application may organize this as if it was 
a connection.  So, in principle, there is no reason why both ends 
could not be opened with "open".  Practice may vary.

Caveat:  I have been experimenting with UDP on Revolution, but yet 
have only read the documents on TCP on Revolution.  I do have TCP 
experience in other environments.

I hope this helps and that I haven't gone down some bunny trail 
that doesn't apply.

Dar Scott

More information about the use-livecode mailing list