🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #12217

Problemas con Sockets.

#12217
From: iagoba
Date: Thu, 16 Aug 2001 13:19
86 lines
2951 bytes
Hola a todos,

  Estoy empezando a programar sockets en C, en Linux, siguiendo la
guia "Beej's Guide to Network Programming", he tomado uno de los
ejemplos que vienen ah� para probar, pero siempre tengo el error de
que sockaddr_in no est� bien definida, alguien sabe qu� puede ser?
pego el c�digo aqu�.

   Para que nos aclaremos, el error me lo d� en la definici�n struct
sockaddr_in  dest_addr;

   Gracias por vuestra ayuda.

------------------------------------------------------------------------

/* Prueba del uso de sockets para establecer una comunicaci�n telnet
   con un ordenador remoto.
*/

#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>

// Variables globales.

char Address[15];

void main (int argc, char *argv[])
{
	int Socket; // Definici�n del Socket.
	struct sockaddr_in dest_addr; // estructuras de comunicaci�n
	
	// Chequeamos los parametros, debe haber 1
	
	if (argc < 1) 
	{
		printf ("Error: Uso: tstsockets <direccion IP>\n");
		exit (1);
	}
	
	memcpy (Address, argv[1], 15);
	
	Socket = socket(AF_INET, SOCK_STREAM, 0);
	
	dest_addr.sin_family = AF_INET; // Protocolo a usar.
	dest_addr.sin_port = htons (23);  // Puerto
	dest_addr.sin_addr.s_addr = inet_addr(Address); // Direcci�n IP
	bzero (&(dest_addr.sin_zero), 8); // Ponemos a 0 el resto de Args.
	
	if (connect (Socket, (struct sockaddr *)&dest_addr, sizeof (struct
sockaddr)) == -1)
	{
		printf ("Error: No se ha podido conectar\n");
		exit (2);
	}
	
	
	// Connect:: Nos conecta al servidor.
	
	
	// Ahora hemos de leer lo que nos envia y mostrarlo por pantalla.
	
	char Buffer;
	
	while (recv (Socket, &Buffer, 1, 0) != -1) // Mientras recibamos
datos...
	{
		printf ("Valor recibido: %c\n",Buffer);
	}
	// Despues de esto, vamos a enviar un <INTRO> a ver que pasa...
	
	send (Socket, '\n', 1, 0);
	
	// Y volvemos a leer a ver que recibimos.
	
	while (recv (Socket, &Buffer, 1, 0) != -1) // Mientras recibamos
datos...
	{
		printf ("Valor recibido despues de <INTRO>: %c\n",Buffer);
	}
	
	// Desconectamos...
	
	close (Socket);
}
Technical Details
Message-ID: <60b8ee78.0108160519.79aef48d@posting.google.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!postnews1.google.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,c3e6152a40f92805,start
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-08-16 06:19:18 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!postnews1.google.com!not-for-mail
From: iagoba@multico.es (iagoba)
Newsgroups: es.comp.os.linux.programacion
Subject: Problemas con Sockets.
Date: 16 Aug 2001 06:19:17 -0700
Organization: http://groups.google.com/
Lines: 86
Message-ID: <60b8ee78.0108160519.79aef48d@posting.google.com>
NNTP-Posting-Host: 212.4.96.23
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 997967958 9070 127.0.0.1 (16 Aug 2001 13:19:18 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: 16 Aug 2001 13:19:18 GMT