Bob Sneidar wrote:

> Sockets are by nature a 2 way communication. After I write to a socket
> I can read from that socket and get back whatever the receiver returns.
> In fact the whole premise of what I am doing depends on it.

Yes, the socket connection is birectional, but establishing that connection 
requires two roles: someone has to dial the number (client), and someone else 
has to be sitting by the phone ready to pick up (server).

Both roles can be present on both sides, creating a system of peers. But a 
firewall will make reaching the listening app difficult, and a good firewall 
will make reaching that app impossible unless host-specific forwarding 
configurations are set up.  My most persuasive conversations on that with the 
IT staff at various orgs over the years have only reinforced my respect for the 
seriousness they bring to their work (in other words, when asked to have the 
org's firewall altered to support a departmental ad hoc usage, the answer is 
roundly "no").

P2P systems often rely on methods like STUN (Session Traversal Utilities for 
NAT) or IRC's older CTCP (Client-to-Client Protocol) to use an outgoing 
connection bidirectionally, ultimately letting the firewall do its thing while 
still allowing an app to be reachable.  But STUN and others like it still 
require a server on a network reachable by all parties (usually the Internet) 
to broker that re-routing.  I'm reading up on STUN now to handle some 
integrations with a VOIP app, and so far I can't recommend attempting to script 
a replacement for that complex method.

And on some networks which use CGN (Carrier-Grade NAT, such as T-Mobile uses 
for their popular home Internet product), even STUN can become problematic.

If anyone here has LC code for a home-grown STUN-like system I'd be grateful to 
read it. Bonus if it needs no server to mediate the connection.

--

Richard Gaskin
FourthWorld.com

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

Reply via email to