Sockets

Mariel Hernandez mhernand@gwiusa.iusa.net.mx
Mon, 07 Jul 1997 16:52:27 -0600


  Hola :

       Estoy trabajando con sockets en Unix, y el programa de perl que
utilice en la versión 2.3, lo quiero utilizar en la vesión 2.5 de Solaris,
sin embargo al tratar de abri el socket me envia el siguiente mensaje de error :

     - protocol not supported.


    aun si el programa lo ejecuto como root, obtengo este mensaje de error.

     El programa que empleo es el siguiente: 


 # sub initport
# Initializes the ports to receive and transmit data to a 
# tcp port connection.
sub initport {
	local($remote_name) = $_[0];
	local($port) = $_[1];
	local($AF_INET) = 2;
	local($SOCK_STREAM) = 1;
	local($sockaddr, $host_name, $name, $aliases, $proto);
	local($host_addr, $remote_addr, $len, $type, $host, $remote);
	local($telnet_port, $sockfd);
	local($protocol) = "tcp";
	
	$sockaddr = "S n a4 x8";
	chop($host_name = `hostname`);

	($name,$aliases,$telnet_port) = getservbyname("telnet", $protocol);

	($name,$aliases,$proto) = getprotobyname($protocol);
	($name,$aliases,$port) = getservbyname($port,$protocol)
		unless $port =~ /^\d+$/;;
	($name,$aliases,$type,$len,$host_addr) = gethostbyname($host_name);
	($name,$aliases,$type,$len,$remote_addr) = gethostbyname($remote_name);
	
	$host = pack($sockaddr, $AF_INET, 0, $host_addr);
	$remote = pack($sockaddr, $AF_INET, $port, $remote_addr);

	# Create a socket for an internet connection on tcp.        ### JUSTO EN
ESTA LINEA ES QUE OBTENGO EL ERROR
	if (!socket(portio, $AF_INET, $SOCK_STREAM, $proto)) {    ### AL NO
GENERARSE EL SOCKET
		&logdata("Unable to obtain socket.",
			"Reason: ".$!."\n");
			printf("returned $testval\n");
			exit(0);
	}


  Mucho les agradeceria si me pudieran dar alguna idea sobre lo que esta
ocurriendo.

  Gracias.