Hi Shlomi,

Thanks a lot. This is exactly what I was after.

-- 
Manfred


On Wed, 8 Jan 2014 13:15:22 +0200
Shlomi Fish <shlo...@shlomifish.org> wrote:

> Hi Manfred,
> 
> Please reply to list if it's a mailing list post -
> http://shlom.in/reply .
> 
> On Wed, 8 Jan 2014 11:42:45 +0100
> Manfred Lotz <manfred.l...@arcor.de> wrote:
> 
> > Hi there,
> > For test purposes I want to create a socket file. Something I could
> > list via ls -l. That's all I want to achieve.
> > 
> > As I didn't find any utility to create a socket file my hope is that
> > Perl offers something to do this.
> > 
> > Any idea?
> 
> If by a socket file you mean a UNIX domain socket, then if
> unix-domain-socket-server.pl is:
> 
> [CODE]
> #!/usr/bin/perl
> 
> use strict;
> use warnings;
> 
> use IO::Socket::UNIX;
> use File::Path qw(mkpath);
> 
> my $dir = "$ENV{HOME}/tmp/unix-domain-socket-test";
> mkpath($dir);
> 
> my $server = IO::Socket::UNIX->new(
>     Type => SOCK_STREAM(),
>     Local => "$dir/foo.sock",
>     Listen => 1,
> );
> 
> my $count = 1;
> while (my $conn = $server->accept())
> {
>     $conn->print("Hello " . ($count++) . "\n");
> }
> 
> [/CODE]
> 
> and unix-domain-socket-client.pl is:
> 
> [CODE]
> #!/usr/bin/perl
> 
> use strict;
> use warnings;
> 
> use IO::Socket::UNIX;
> 
> my $client = IO::Socket::UNIX->new(
>     Type => SOCK_STREAM(),
>     Peer => "$ENV{HOME}/tmp/unix-domain-socket-test/foo.sock",
> );
> 
> my $contents = do
> {
>     local $/;
>     <$client>;
> };
> 
> print "Got <<$contents>>\n";
> [/CODE]
> 
> Then if I run:
> 
> shlomif@telaviv1:~/tmp/unix-domain-socket-test$ perl \
> ~/progs/perl/snippets/unix-domain-socket-server.pl
> 
> I can do:
> 
> [SHELL]
> shlomif@telaviv1:~/tmp/unix-domain-socket-test$ ls -l
> total 0
> srwxr-xr-x 1 shlomif shlomif 0 Jan  8 13:11 foo.sock
> shlomif@telaviv1:~/tmp/unix-domain-socket-test$ perl
> ~/progs/perl/snippets/unix-domain-socket-client.pl Got <<Hello 1
> >>
> shlomif@telaviv1:~/tmp/unix-domain-socket-test$ perl
> ~/progs/perl/snippets/unix-domain-socket-client.pl Got <<Hello 2
> >>
> shlomif@telaviv1:~/tmp/unix-domain-socket-test$ perl
> ~/progs/perl/snippets/unix-domain-socket-client.pl Got <<Hello 3
> >>
> shlomif@telaviv1:~/tmp/unix-domain-socket-test$ 
> [/SHELL]
> 
> You can find it here:
> 
> https://github.com/shlomif/shlomif-perl-snippets
> 
> You may wish to read http://perldoc.perl.org/IO/Socket/UNIX.html .
> 
> Hope that helps and best regards,
> 
>       Shlomi Fish
> 




-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to