Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Sistemas Operativos] Sockets y Sendfile
Autor Mensaje
Imakuni Sin conexión
Presidente del CEIT
Boxes tastes like mush
********

Ing. en Sistemas
Facultad Regional Córdoba

Mensajes: 7.021
Agradecimientos dados: 124
Agradecimientos: 129 en 85 posts
Registro en: Jul 2008
Mensaje: #16
Re: [Sistemas Operativos] Sockets y Sendfile
Che, estamos teniendo el siguiente problema con el codigo:

#include <stdio.h>
#include <string.h>

/*
#include <sys/socket.h>
#include <resolv.h>
*/

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>


#define MI_PUERTO 8080 //esto va en el archivo configuracion
#define BACKLOG 10 //esto va en el archivo configuracion


void mensaje_error(int e){
printf("error!!!, %d\n",e);
return;
}


int main(){

int sockfd; //declaro el descriptor del socket

int addrlen = sizeof(struct sockaddr); //SINO FUNCIONA PROBAR CON sizeof(struct sockaddr_in)

struct sockaddr_in my_addr; // creo la estructura sockaddr_in


//inicializo la estructura sockaddr_in
bzero(&my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MI_PUERTO); // Designa numero de puerto por donde escuchara el servidor
my_addr.sin_addr.s_addr = htonl (INADDR_ANY); // IP de la interface por donde escuchara el servidor, en este caso permite IP de cualquier host

struct sockaddr_in client_addr; //DNI del cliente

//si no hay error, creo el socket
if((sockfd = socket(AF_INET, SOCK_STREAM, 0) == -1))
{mensaje_error(0); return 1;}

//si no hay error, pido el puerto
//extern int errno; /*"SI NO FUNCIONA PROBA DESCOMENTAR ESTA LINEA Y BORRAR ESTO"*/
if(bind(sockfd, (struct sockaddr*) &my_addr, sizeof(my_addr))==-1) //otro tutorial me dice q si no es error retorna 0 ¿?
{mensaje_error(1); printf("errno = %d \n",errno); return 1;}



Y despues sigue.... alguien sabe porque razon en el bind, SIEMPRE me tira error??? (Y supuestamente tira error 88 "socket operation on non socket")
06-09-2008 00:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
reyiyo Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 74
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Jul 2008
Mensaje: #17
Re: [Sistemas Operativos] Sockets y Sendfile
Teseracto escribió:Che, estamos teniendo el siguiente problema con el codigo:

#include <stdio.h>
#include <string.h>

/*
#include <sys/socket.h>
#include <resolv.h>
*/

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>


#define MI_PUERTO 8080 //esto va en el archivo configuracion
#define BACKLOG 10 //esto va en el archivo configuracion


void mensaje_error(int e){
printf("error!!!, %d\n",e);
return;
}


int main(){

int sockfd; //declaro el descriptor del socket

int addrlen = sizeof(struct sockaddr); //SINO FUNCIONA PROBAR CON sizeof(struct sockaddr_in)

struct sockaddr_in my_addr; // creo la estructura sockaddr_in


//inicializo la estructura sockaddr_in
bzero(&my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MI_PUERTO); // Designa numero de puerto por donde escuchara el servidor
my_addr.sin_addr.s_addr = htonl (INADDR_ANY); // IP de la interface por donde escuchara el servidor, en este caso permite IP de cualquier host

struct sockaddr_in client_addr; //DNI del cliente

//si no hay error, creo el socket
if((sockfd = socket(AF_INET, SOCK_STREAM, 0) == -1))
{mensaje_error(0); return 1;}

//si no hay error, pido el puerto
//extern int errno; /*"SI NO FUNCIONA PROBA DESCOMENTAR ESTA LINEA Y BORRAR ESTO"*/
if(bind(sockfd, (struct sockaddr*) &my_addr, sizeof(my_addr))==-1) //otro tutorial me dice q si no es error retorna 0 ¿?
{mensaje_error(1); printf("errno = %d \n",errno); return 1;}



Y despues sigue.... alguien sabe porque razon en el bind, SIEMPRE me tira error??? (Y supuestamente tira error 88 "socket operation on non socket")


Es porque creaste mal es socket me parece :P


Off-topic:
Cumbiancha.wma
07-09-2008 04:17
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
LeaTex Sin conexión
Presidente del CEIT
.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.848
Agradecimientos dados: 56
Agradecimientos: 264 en 55 posts
Registro en: Apr 2008
BlogSpot Facebook Google+ Last.fm LinkedIn Twitter
YouTube
Mensaje: #18
Re: [Sistemas Operativos] Sockets y Sendfile

Off-topic:
reyiyo, posteaste a las 4:17 am. si a esa hora estabas viendo el foro, te zarpás en geek.
imagino que llegaste mdio borracho del boliche, y te diste cuenta que habías dejado la pc prendida y el navegador abierto justo en este topic, sino estás un poco enfermo. jajaja.

07-09-2008 15:00
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
donleopardo Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 66
Agradecimientos dados: 38
Agradecimientos: 11 en 8 posts
Registro en: Sep 2008
Mensaje: #19
Re: [Sistemas Operativos] Sockets y Sendfile
Teseracto escribió:Che, estamos teniendo el siguiente problema con el codigo:

#include <stdio.h>
#include <string.h>

/*
#include <sys/socket.h>
#include <resolv.h>
*/

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>


#define MI_PUERTO 8080 //esto va en el archivo configuracion
#define BACKLOG 10 //esto va en el archivo configuracion


void mensaje_error(int e){
printf("error!!!, %d\n",e);
return;
}


int main(){

int sockfd; //declaro el descriptor del socket

int addrlen = sizeof(struct sockaddr); //SINO FUNCIONA PROBAR CON sizeof(struct sockaddr_in)

struct sockaddr_in my_addr; // creo la estructura sockaddr_in


//inicializo la estructura sockaddr_in
bzero(&my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MI_PUERTO); // Designa numero de puerto por donde escuchara el servidor
my_addr.sin_addr.s_addr = htonl (INADDR_ANY); // IP de la interface por donde escuchara el servidor, en este caso permite IP de cualquier host

struct sockaddr_in client_addr; //DNI del cliente

//si no hay error, creo el socket
if((sockfd = socket(AF_INET, SOCK_STREAM, 0) == -1))
{mensaje_error(0); return 1;}

//si no hay error, pido el puerto
//extern int errno; /*"SI NO FUNCIONA PROBA DESCOMENTAR ESTA LINEA Y BORRAR ESTO"*/
if(bind(sockfd, (struct sockaddr*) &my_addr, sizeof(my_addr))==-1) //otro tutorial me dice q si no es error retorna 0 ¿?
{mensaje_error(1); printf("errno = %d \n",errno); return 1;}



Y despues sigue.... alguien sabe porque razon en el bind, SIEMPRE me tira error??? (Y supuestamente tira error 88 "socket operation on non socket")
La estructura client_addr la tenés que crear antes de empezar a inicializar tu dirección (my_addr).

Ya que estoy, una pregunta. Tengo el server ya hecho y funciona, probé con un cliente que se conecta y conecta perfectamente, pero después, cuando quiero hacer otra cosa, ya sea cerrar la conexión o enviarle algo, se queda en el select y no recibe nada. Cuando pruebo cerrar la conexión, el cliente la cierra perfectamente, pero el servidor no toma eso y se queda en el select esperando, tienen idea a que se puede deber? No posteo el codigo porque es un poco extenso, si necesitan ver algo me avisan.

Saludos.
08-09-2008 08:42
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Imakuni Sin conexión
Presidente del CEIT
Boxes tastes like mush
********

Ing. en Sistemas
Facultad Regional Córdoba

Mensajes: 7.021
Agradecimientos dados: 124
Agradecimientos: 129 en 85 posts
Registro en: Jul 2008
Mensaje: #20
Re: [Sistemas Operativos] Sockets y Sendfile
Select todavia no lo vimos :S...

Intentaste crear un proceso que se encarge de la conexion en si, y otro con el select?
08-09-2008 13:12
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.707
Agradecimientos dados: 92
Agradecimientos: 384 en 135 posts
Registro en: May 2008
Mensaje: #21
Re: [Sistemas Operativos] Sockets y Sendfile
Teseracto escribió:Select todavia no lo vimos Confused...

Intentaste crear un proceso que se encarge de la conexion en si, y otro con el select?

la conexion y el select se pueden hacer en el mismo proceso sin problemas.
Fijate si agregaste el socket correspondiente al select, no me acuerdo bien la funcion pero alguien te va a saber decir. Y creo que habria que reagregarlo cada vez que pasa por el select. Dsp si me acuerdo veo de postear el codigo mio de esa aprte para que vean a q me refiero
08-09-2008 15:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
donleopardo Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 66
Agradecimientos dados: 38
Agradecimientos: 11 en 8 posts
Registro en: Sep 2008
Mensaje: #22
Re: [Sistemas Operativos] Sockets y Sendfile
Ponganse a ver el select ya entonces, es muy necesario...
Gracias por las respuestas, ya lo hicimos funcionar, era una boludez.

Saludos
09-09-2008 10:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)