Home: Need a Custom or Prewritten Perl Program?: I need a program that...:
Communication between perl script and C programme through sockets



zenith007
New User

Dec 19, 2009, 1:51 AM


Views: 5196
Communication between perl script and C programme through sockets

Hi all,

I need a perl script , which is able to communicate with the C programme on the same local machine through socket programming.

This is one which I have written , but I dont know what causing the problem , the script is unalbe get data
I've tried the code in Perl Cookbook, and many modifications. Here's my socket programme

<code>
#!/usr/bin/perl
use IO::Socket;
use strict;
use warnings;

unlink "/tmp/mysock";
our $server = IO::Socket::UNIX->new(LocalAddr => "/tmp/mysock",
Type => SOCK_DGRAM,
Listen => 5)
or die $!;

while (my $client = $server->accept())
{
while (defined (my $buf = <$client>))
{
print "$buf\n";
}
}

close ($server);

exit(0);

</code>
When I run it, the ->new() call appears to work. No error codes and the debugger reports that $server is a socket. The /tmp/mysock file doesn't get created, though. Then the while($client = ... ) just falls through. It doesn't wait for the socket to say anything, it just skips to the close() statement and exits.
I've done this with INET sockets a number of times with no problems, but this is the first time I've tried UNIX sockets. If anyone has any ideas, I'd appreciate hearing about them. Thanks Russ Jones


Code



      
    


lifesaver
Novice

Dec 19, 2009, 8:59 AM


Views: 5182
Re: [zenith007] Communication between perl script and C programme through sockets


In Reply To
Hi all,

I need a perl script , which is able to communicate with the C programme on the same local machine through socket programming.

This is one which I have written , but I dont know what causing the problem , the script is unalbe get data
I've tried the code in Perl Cookbook, and many modifications. Here's my socket programme

<code>
#!/usr/bin/perl
use IO::Socket;
use strict;
use warnings;

unlink "/tmp/mysock";
our $server = IO::Socket::UNIX->new(LocalAddr => "/tmp/mysock",
Type => SOCK_DGRAM,
Listen => 5)
or die $!;

while (my $client = $server->accept())
{
while (defined (my $buf = <$client>))
{
print "$buf\n";
}
}

close ($server);

exit(0);

</code>
When I run it, the ->new() call appears to work. No error codes and the debugger reports that $server is a socket. The /tmp/mysock file doesn't get created, though. Then the while($client = ... ) just falls through. It doesn't wait for the socket to say anything, it just skips to the close() statement and exits.
I've done this with INET sockets a number of times with no problems, but this is the first time I've tried UNIX sockets. If anyone has any ideas, I'd appreciate hearing about them. Thanks Russ Jones


Code


We can do it within your budget,if interested contact our programmer live or put your requirement in our messegebord @ http://www.livefreelancer.net/