Article View: es.comp.os.linux.programacion
Article #12219Re: Problemas con Sockets.
From: Jose A
Date: Thu, 16 Aug 2001 16:00
Date: Thu, 16 Aug 2001 16:00
92 lines
3482 bytes
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!MAQUI000References:
<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)