🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Problemas con Sockets.

#12219
From: Jose A
Date: Thu, 16 Aug 2001 16:00
92 lines
3482 bytes
Hola

Realic� unos peque�os cambios y me funcion�:

On 16 Aug 2001 06:19:17 -0700, iagoba <iagoba@multico.es> wrote:
>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>
//Esto lo inclu�
#include <netinet/in.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
	// esto lo cambi� de lugar para esta posici�n
	char Buffer;
	
	// Chequeamos los parametros, debe haber 1 ----> error
	// esto lo cambi� de 1 a 2 sino siempre da fallo, pues el valor de
	// argv[1] es nada, recuerda que el nombre del programa ya es un
	// argumento, el argv[0], y el argv[1] es el segundo.
	if (argc < 2) 
	{
		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.
	
	
	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: <slrn9nnrgs.2ul.MAQUI000@cm224054.red.mundo-r.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!newscore.gigabell.net!fu-berlin.de!newsfeed.bcn.ttd.net!news.bcn.ttd.net!frodo.audiolis.com!127.0.0.1!news.antakira.com!MAQUI000
References: <60b8ee78.0108160519.79aef48d@posting.google.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,c3e6152a40f92805
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-08-16 09:31:23 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!newscore.gigabell.net!fu-berlin.de!newsfeed.bcn.ttd.net!news.bcn.ttd.net!frodo.audiolis.com!127.0.0.1!news.antakira.com!MAQUI000
From: MAQUI000@NOSPAM.mundo-r.com (Jose A)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Problemas con Sockets.
Date: Thu, 16 Aug 2001 18:00:30 +0200
Organization: Grupo de Empresas Antakira
Lines: 92
Message-ID: <slrn9nnrgs.2ul.MAQUI000@cm224054.red.mundo-r.com>
References: <60b8ee78.0108160519.79aef48d@posting.google.com>
NNTP-Posting-Host: 213.97.227.24
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: slrn/0.9.6.4 (Linux)