Sockets and using them...

Charles Hixson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Nov 6 15:57:37 PST 2016


On 11/05/2016 11:02 PM, Era Scarecrow via Digitalmars-d-learn wrote:
>  So I've got a project where I want to create basically a 
> decentralized chat program where every program is a host and a client. 
> When you connect all connections can go through to route the chat to 
> everyone else.
>
>  So to make this work I've looked over the sockets package and I don't 
> quite follow how you'd make it so it works a lot like a web browser, 
> aka when you get a connection you redirect to a different port so you 
> have 1 listening port for new connections so it can act as a server. 
> What settings or configuration would I need to be able to do that?
>
That sounds more like a job for udp than tcp sockets.  You'd need to 
implement an ack/nak protocol because udp doesn't guarantee delivery, 
but unless you want a central server I don't see how you could use tcp.  
The central server wouldn't need to do much, and could delegate most of 
the processing, but it wouldn't be decentralized.  I was looking into 
using tcp (actually zmq) for something similar awhile back and tcp just 
didn't seem to support actually decentralized communication.  Udp 
did...which meant I couldn't use zmq.  That was a real pity because zmq 
is basically a very nice package, and easy to wrap.


More information about the Digitalmars-d-learn mailing list