Abstract sockets (linux)

freeman via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 26 06:36:48 PDT 2015


On Thursday, 25 June 2015 at 19:47:37 UTC, Ali Çehreli wrote:
>
> I've found an old example of mine, which uses abstract sockets. 
> Apparently, it was a concurrency experiment as well. Just 
> translated from Turkish to English:
>
>   http://ddili.org/ornek_kod/client_server.d
>
> One difference I see is that mine doesn't set blocking. You can 
> use it like this:
>
> 1) Start it as a server:
>
>   ./deneme --role=server
>
> 2) Start as many clients as needed:
>
>   ./deneme --role=client
>
> Ali
>
> P.S. And here is the original Turkish version:
>
>   http://ddili.org/ornek_kod/istemci_sunucu.d

Thank you for the example code!  I verified that client and 
server communicated, and that a standard file-based unix socket 
was not created.  Then I simply changed the socketName to the 
socket I was interested in, and tried the client against it.  
Still no luck unfortunately, same error as earlier.

I have noticed that successful connect calls appear to show the 
size as 23, whereas unsuccessful connect calls show 24.

This works (socat):
     connect(3, {sa_family=AF_FILE, path=@"/var/run/ptmd.socket"}, 
23) = 0

This does not (from deneme, modified):
     connect(3, {sa_family=AF_FILE, path=@"/var/run/ptmd.socket"}, 
24) = -1 ECONNREFUSED (Connection refused)


More information about the Digitalmars-d-learn mailing list