05-21-2008
I don't think I can tell you anything you don't already know, but let's review the situation.
You want a client/server architecture: a server accepts incoming connections from the clients, and stores the information they submit when they connect. The server can be a simple program which merely accepts incoming connections, reads whatever the clients submit, and stores it to a file, then disconnects. Similarly, the clients can simply open a connection, dump a report, and disconnect.
The sample code you find in the perlipc manual page can do this, but if you have performance demands, it might not be enough. Then it's probably better to go look for a server architecture which is designed for heavy concurrency. Apache has a good reputation in this regard, although you can look for others, too. You'll just need to figure out a way to make it do what you want. A simple CGI script is a good way to make Apache do something different than just serve up static web pages.
Are you following so far? So my suggestions at this point would be to test the "simple forking server" you find in man perlipc and measure whether it performs well enough. If it doesn't, see if you can make Apache suit your needs.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi,
We have developed a server program using TCP/IP Communication to communicate with another client program. After running for some days we find the TCP/IP connection from the server program is getting slower.
What i mean to say is since the send() function in the server program (it is... (2 Replies)
Discussion started by: rajesh_puru
2 Replies
2. UNIX for Dummies Questions & Answers
Hi,
Users are connecting thru a KCML Client to UNIX machine, and I want to know which TCP/UDP port that client uses? How can I check the port of a user logged in?
Regards,
Tayyab (2 Replies)
Discussion started by: tayyabq8
2 Replies
3. UNIX for Advanced & Expert Users
Hi Experts,
need help about release or refresh TCP Connection:
i have the sample like below :
application log connection:
0500 ( 192.168.0.1:36053) 00919 2007/05/10 23:30:25 112 13 2007/05/10 23:30:25 1969/12/31 17:00:00
0500 ( 192.168.0.1:36054) 00920 2007/05/10 23:30:26 000 00... (3 Replies)
Discussion started by: bucci
3 Replies
4. Programming
Hello. I would like to know how to close an existing tcp socket. I have read some stuff and learned how to create a socket and then close it but have not found anything about how to close an existing tcp socket created by another application. The situation is this: I have an ODBC server running and... (6 Replies)
Discussion started by: raidzero
6 Replies
5. Solaris
Hello,
Actually there are some bugs in application which does not close the TCP connection to other server though CORBA.
We need to kill that ESTABLISHED connections as new connection are not happeneing as the allocated ports were used and showing as ESTABLISHED
Is there any... (4 Replies)
Discussion started by: GIC1986
4 Replies
6. UNIX for Dummies Questions & Answers
Dear experts,
I am seeing a lot of TCP failed connection attempts from "netstat -s" on one of our servers.
How can I pin point what connection failed and what are the ports involved?
Any tools/commands I can dig in deeper to diag. what went wrong on these "failed connection attempts"?
... (2 Replies)
Discussion started by: cache51
2 Replies
7. IP Networking
Why this happens?
How to solve this?
$netstat -na |grep 9325
tcp 0 0 127.0.0.1:9325 127.0.0.1:9325 ESTABLISHED
When a client socket repeatedly tries to connect to an inactive(no server socket is listening on this port) local port,connect succeeds.
... (1 Reply)
Discussion started by: johnbach
1 Replies
8. Solaris
Hi,
I use solaris Unix .
I find there is some problem in application and it generate many "close-wait" tcp connect and stay in the server . it is generate by process id 7740
root@XX # netstat -an | grep CLOSE_WAIT | wc -l
285
root@XX # netstat -an | grep CLOSE_WAIT
10.158.35.4.34805 ... (2 Replies)
Discussion started by: abcdef
2 Replies
9. Programming
Hi.
I am writing client - server application using TCP sockets.
I need some very basic functionality, namely: how to check if another "participant" of the connection is still present?
I want to handle situations, when client is gone, or server breaks down, etc. (25 Replies)
Discussion started by: Shang
25 Replies
10. UNIX for Dummies Questions & Answers
I am trying to send json messages to a port on a linux server from a remote server running a .net program. I have one implementation running with successful incoming messages to port 1514. I tried to replicate the same thing but just to another port but cannot get it to work as I get the following... (3 Replies)
Discussion started by: unienewbie
3 Replies
LEARN ABOUT DEBIAN
apache::xmlrpc
Apache::XMLRPC(3pm) User Contributed Perl Documentation Apache::XMLRPC(3pm)
NAME
Apache::XMLRPC - serve XML-RPC requests from Apache
SYNOPSIS
##
## Directives for your Apache config file.
##
<Location /RPC2>
SetHandler perl-script
PerlHandler Apache::XMLRPC
PerlSetVar XMLRPC_Config /usr/local/apache/xml-rpc/services
</Location>
##
## In the 'services' file referenced above by 'XMLRPC_Config'
##
sub foo {
...
}
sub bar {
...
}
$map = {
foo => &foo,
bar => &bar,
};
1;
DESCRIPTION
Apache::XMLRPC serves Userland XML-RPC requests from Apache/mod_perl using the Frontier::RPC2 module.
Configuring Apache::XMLRPC to work under mod_perl is a two step process. First, you must declare a "<Location>" directive in your Apache
configuration file which tells Apache to use the content handler found in the Apache::XMLRPC module and defines a variable which tells the
module where to find your services. Then, you must define the services.
Apache Configuration
Apache configuration is as simple as the "<Location>" directive shown in the synopsis above. Any directive allowed by Apache inside a
"<Location>" block is allowed here, but the three lines shown above are required. Pay close attention to the 'PerlSetVar XMLRPC_Config
...' line as this is where you tell Apache where to find your services. This file may reside anywhere accessible by Apache.
Defining Services
To actually define the XML-RPC routines that will be served, they must reside in the file referenced by the 'PerlSetVar XMLRPC_Config ...'
directive in the Apache configuration file. In this file you may place as many Perl subroutines as you like, but only those which are
explicitly published will be available to your XML-RPC clients.
To publish a subroutine, it must be included in the hash reference named $map (the hash reference must have this name as this is the
variable that the Apache::XMLRPC passes to Frontier::RPC2::serve to actually service each request) The hash reference must be defined in
this "services" file.
The keys of the hash are the service names visible to the XML-RPC clients while the hash values are references to the subroutines you wish
to make public. There is no requirement that the published service names match those of their associated subroutines, but it does make
administration a little easier.
SEE ALSO
perl(1), Frontier::RPC2(3)
<http://www.scripting.com/frontier5/xml/code/rpc.html>
AUTHOR
Ed Hill <ed-hill@uiowa.edu> is the original author.
Tim Peoples <tep@colltech.com> added a few tweaks and all the documenation.
perl v5.10.1 2011-04-05 Apache::XMLRPC(3pm)