Re: A simple client/server problem

2004-07-31 Thread Dan Timis
Thanks Bob,
I looked at LWP and it looks great.  I will keep it in mind for other 
applications.

I should have been more clear about what I meant by simple.  I have 
100+ clients that need to run this script, and I cannot install any 
kind of significant Perl modules on them.

I found a file called geturl11.pl 
(http://www.jmarshall.com/easy/http/geturl11.pl.txt) that is pretty 
much self contained (it uses Socket, but that's already installed).  
geturl11.pl opens a socket, builds the HTTP request, parses the reply 
and saves the data to a file.  All I had to do is add Content-length: 
and the contents of my request.xml file to GET.

Thanks,
Dan Timis
Muse Research, Inc.
On Friday, July 30, 2004, at 05:26 AM, Bob Showalter wrote:
Dan Timis wrote:
Hi everyone,
I am very new to Perl.  I need two perl scripts, one would run on a
client, the
other would run on a server.
...
I think I can also handle most of the client side.  What I don't know
how to do
is open a two way connection with the server.  Do I do something like
this:
 open CONNECTION http://www.myserver.com/cgi-bin/generate-reply;
Where can I find some example code?
Use the LWP family of modules for this. It's designed for creating HTTP
clients (and servers, for that matter).
   http://search.cpan.org/~gaas/libwww-perl-5.800/


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response



Re: A simple client/server problem

2004-07-31 Thread Randal L. Schwartz
 Dan == Dan Timis [EMAIL PROTECTED] writes:

Dan I should have been more clear about what I meant by simple.  I have
Dan 100+ clients that need to run this script, and I cannot install any
Dan kind of significant Perl modules on them.

See PAR, then.

Cannot install is not a valid excuse.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
[EMAIL PROTECTED] URL:http://www.stonehenge.com/merlyn/
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response




Re: A simple client/server problem

2004-07-31 Thread Dan Timis
On Saturday, July 31, 2004, at 07:01 PM, Randal L. Schwartz wrote:
Dan == Dan Timis [EMAIL PROTECTED] writes:
Dan I should have been more clear about what I meant by simple.  I 
have
Dan 100+ clients that need to run this script, and I cannot install 
any
Dan kind of significant Perl modules on them.

See PAR, then.
Thanks.  Looks great.
Dan
Cannot install is not a valid excuse.
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 
0095
[EMAIL PROTECTED] URL:http://www.stonehenge.com/merlyn/
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl 
training!

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response



RE: A simple client/server problem

2004-07-30 Thread Bob Showalter
Dan Timis wrote:
 Hi everyone,
 
 I am very new to Perl.  I need two perl scripts, one would run on a
 client, the
 other would run on a server.
 ...
 I think I can also handle most of the client side.  What I don't know
 how to do
 is open a two way connection with the server.  Do I do something like
 this:
 
  open CONNECTION http://www.myserver.com/cgi-bin/generate-reply;
 
 Where can I find some example code?

Use the LWP family of modules for this. It's designed for creating HTTP
clients (and servers, for that matter).

   http://search.cpan.org/~gaas/libwww-perl-5.800/

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response




RE: A simple client/server problem

2004-07-30 Thread NYIMI Jose (BMB)
 -Original Message-
 From: Dan Timis [mailto:[EMAIL PROTECTED] 
 Sent: Friday, July 30, 2004 7:47 AM
 To: [EMAIL PROTECTED]
 Subject: A simple client/server problem
 
 
 Hi everyone,
 
 I am very new to Perl.  I need two perl scripts, one would run on a 
 client, the
 other would run on a server.
 
 The perl script on the client machine runs an application.  The 
 application
 creates a file called request.xml  The perl script reads the file, 
 and sends
 it to the server.
 
 A cgi script on the server reads the file and saves it as 
 request.xml 
 then
 runs another application.  The application reads request.xml and 
 creates
 reply.xml.  The server perl script reads reply.xml and sends it 
 back to the
 client.
 
 The client reads the data from the server and saves it as reply.xml
 
 I looked all over for some example code.  I found lots of examples 
 about how to
 upload a file to the server, but they are all about the server part, 
 and how to
 generate html that would let a user choose a file to upload.  I could 
 not find
 anything about how a client would connect to a server, send 
 some data, 
 and then
 read some data back.
...
...

 I think I can also handle most of the client side.  What I don't know 
 how to do
 is open a two way connection with the server.  Do I do something like 
 this:
 
  open CONNECTION http://www.myserver.com/cgi-bin/generate-reply;
 
 Where can I find some example code?

You may need XMLRPC.
http://www.xmlrpc.com
http://xmlrpc-c.sourceforge.net/xmlrpc-howto/xmlrpc-howto-perl-client.html
http://xmlrpc-c.sourceforge.net/xmlrpc-howto/xmlrpc-howto-perl-cgi.html

A Perl Client (not tested !)
The following program shows how to call an XML-RPC server from Perl:

use strict;
use warnings;
use Frontier::Client;

# Make an object to represent the XML-RPC server.
my $server_url = 'http://www.myserver.com/cgi-bin/generate-reply.pl';
my $server_obj = Frontier::Client-new(url = $server_url);

# Call the remote server and get our result.
my $request_data = subroutine_to_get_your_request_xml_data();
my $result_obj = $server_obj-call('in', $request_data);
my $reply_data = $result_obj-{'out'};
#the rest ...

Hope that gives you some new ideas ...

José.


 DISCLAIMER 

This e-mail and any attachment thereto may contain information which is confidential 
and/or protected by intellectual property rights and are intended for the sole use of 
the recipient(s) named above. 
Any use of the information contained herein (including, but not limited to, total or 
partial reproduction, communication or distribution in any form) by other persons than 
the designated recipient(s) is prohibited. 
If you have received this e-mail in error, please notify the sender either by 
telephone or by e-mail and delete the material from any computer.

Thank you for your cooperation.

For further information about Proximus mobile phone services please see our website at 
http://www.proximus.be or refer to any Proximus agent.


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response




A simple client/server problem

2004-07-29 Thread Dan Timis
Hi everyone,
I am very new to Perl.  I need two perl scripts, one would run on a 
client, the
other would run on a server.

The perl script on the client machine runs an application.  The 
application
creates a file called request.xml  The perl script reads the file, 
and sends
it to the server.

A cgi script on the server reads the file and saves it as request.xml 
then
runs another application.  The application reads request.xml and 
creates
reply.xml.  The server perl script reads reply.xml and sends it 
back to the
client.

The client reads the data from the server and saves it as reply.xml
I looked all over for some example code.  I found lots of examples 
about how to
upload a file to the server, but they are all about the server part, 
and how to
generate html that would let a user choose a file to upload.  I could 
not find
anything about how a client would connect to a server, send some data, 
and then
read some data back.

I think I have figured out the server part.  It would be something like 
this:

# read request from client and save it in a file
read(STDIN, my $request, $ENV{'CONTENT_LENGTH'});
open REQUEST_FILE,  . request.xml or
croak Cannot create REQUEST_FILE: $!;
print REQUEST_FILE $request;
close REQUEST_FILE;
# save old stdout, redirect stdout to a temp file
open my $oldout, STDOUT or
croak Can't duplicate STDOUT: $!;
open STDOUT,  . temp.txt or
croak Can't redirect STDOUT: $!;
# run the create-reply application,
# close stdout, and restore the saved stdout
systemcreate-reply;
close STDOUT;
open STDOUT, , $oldout or
croak Can't restore old STDOUT: $!;
# read the reply.xml file
open REPLY_FILE, reply.xml or
croak Cannot open REPLY_FILE: $!;
(undef, undef, undef, undef, undef, undef, undef, my $replySize, 
undef,
undef, undef, undef, undef ) = stat REPLY_FILE;
read(REPLY_FILE, my $reply, $replysize);
close REPLY_FILE;

# send reply.xml to the client
my $cgi = new CGI;
print $cgi-header(-type='text/xml');
print $reply;
# Clean up
unlink request.xml;
unlink reply.xml;
unlink temp.txt;
I think I can also handle most of the client side.  What I don't know 
how to do
is open a two way connection with the server.  Do I do something like 
this:

open CONNECTION http://www.myserver.com/cgi-bin/generate-reply;
Where can I find some example code?
Thanks,
Dan Timis
Muse Research, Inc.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response