Multiple LAN cards & mc server apps

Pierre Sahores psahores at easynet.fr
Sun Aug 3 04:09:00 EDT 2003


Alex Shaw wrote:
> Hi,
> 
> I haven't tried this yet but I'm sure someone has....    :)
> 
> Using the metacard 'accept on port' command..
> 
> 1. Will this cause the server app to listen on all available interfaces?
> 
> 2. How do you restrict metacard listening to just one interface?
> 
> regards
> alex
> 
> _______________________________________________
> metacard mailing list
> metacard at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/metacard
> 
> 

Hi Alex,

The answer is no.

Because each different MC app is only able to listen at one port (aka 
one socket listener : a php or cgi script), at one time, you have just 
to name the port you want have each app to listen to, just alike below :

> on newconnect s # reading the request from a new socket
>   read from socket s for 1 line with message "serverread"
> end newconnect

> on serverread x,y # processing the request
>   global PostIn,Retour,Debut,Lepath,Ppa
>   put urldecode(y) into PostIn # données POST reçues de wmc.xml
>   put cr into char (length(PostIn))-1 to (length(PostIn)) of PostIn
>   put "" into Retour
>   set itemdelimiter to "&"
>   doswitcher # the code the server app have to run goes here
>   write Retour to socket x
>   close socket x # x = adresse IP & "|" & n° d'ordre du socket fils reçu de wmc.xml
>   repeat
>     if the num of lines in (opensockets()) > 1 then close socket line 2 of (opensockets()) else exit repeat
>   end repeat
> end serverread

> on preOpenStack
>   ...
>   set the socketTimeoutInterval to "10" # to set up to lots more on client-side MC Jaguar-hosted apps
>   if the windows is "WMCPE" (if the server app is running in console-mode in the background)
>   then accept connections on port "765" with message "newconnect"
>   else accept connections on port "7654" with message "newconnect"
>   ...
> end preOpenStack

It's in setting up the sockets listener script that you will choose the 
active interface, one at each time you want to listen to. See the php 
example below, witch is able to bind, Apache to the MC application 
server, in both console (on root protected port 765) and graphical (on 
port 7654) modes :

> <?
> 
> if ($REQUEST_METHOD == POST) {
> 
> 	$headers = $HTTP_POST_VARS;
> 	while (list($header, $value) = each($headers)) $exAE .= "$header=$value&";
> 	$exAE = urlencode($exAE);
> 	$activapp = substr($exAE,0,5);
> 	
> 	if ($activapp == "ia832") {
> 
> 		$connection = fsockopen("localhost", "765",  &$error_number, &$error_description, "30"); 	 
> 		if ($connection) {
> 			set_socket_blocking($connection, true);
> 			fputs($connection,"");
> 			fputs($connection,"$exAE"."\r\n");
> 			fpassthru($connection);
> 			}
> 		else 	{
> 			$connection = fsockopen("localhost", "7654",  &$error_number, &$error_description, "30"); 	 
> 			if ($connection) {
> 				set_socket_blocking($connection, true);
> 				fputs($connection,"");
> 				fputs($connection,"$exAE"."\r\n");
> 				fpassthru($connection);
> 			}
> 			else print("erreur numéro $error_number ($error_description)<BR>\n");
> 		}
> 	}
> }
>
> ?>



-- 
Bien cordialement, Pierre Sahores

Inspection académique de Seine-Saint-Denis
Serveurs d'applications et SGBDR (Web/PGI)
Penser et produire l'avantage compétitif




More information about the metacard mailing list