Article View: es.comp.os.linux.programacion
Article #12217Problemas con Sockets.
From: iagoba
Date: Thu, 16 Aug 2001 13:19
Date: Thu, 16 Aug 2001 13:19
86 lines
2951 bytes
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-mailShow 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