¿Qué ocurre al crear un socket?

Iniciado por mester, 22 Noviembre 2015, 22:17 PM

0 Miembros y 1 Visitante están viendo este tema.

mester

Hola.
Hace poco me introduje en el mundo de los sockets en C, y hay una duda que no la consigo resolver.
Cuando creas un socket, se le asigna una variable entera, ya sea porque vas a enviar información o porque vas a recibirla con la funcion accept().
Cuando yo envío con la función send() o write(), ¿como entiende el ordenador que se lo voy a enviar a la dirección 192.168.1.1 si solo le estoy pasando un entero?
¿No es necesaria una estructura?
He leido que al igual que se le asigna el numero 0 a stdin, el 1 a stdout y el 2 a stderr, se le asignará de 3 en adelante a los sockets.
Pero ¿cómo entiende el ordenador que lo quiero enviar a X dirección IP pasándole solo el entero?
Gracias
Justicia es dar a cada uno lo que se merece

kondrag_X1

a ver, cuando tienes un socket haces una conexión a esa conexión se le asigna un número pero antes has de decirle a donde te quieres conectar, es decir, indicar la dirección del servidor.

Ten encuentra que para servidores no es necesario porque ellos están escuchan y aceptan clientes mientras que los clientes si tienes que conocer previamente la dirección del servidor.

te recomiendo que te mires la capa de protocolos TCP/IP para que lo entiendas mejor.

mester

Cita de: kondrag_X1 en 23 Noviembre 2015, 15:48 PM
a ver, cuando tienes un socket haces una conexión a esa conexión se le asigna un número pero antes has de decirle a donde te quieres conectar, es decir, indicar la dirección del servidor.

Ten encuentra que para servidores no es necesario porque ellos están escuchan y aceptan clientes mientras que los clientes si tienes que conocer previamente la dirección del servidor.

te recomiendo que te mires la capa de protocolos TCP/IP para que lo entiendas mejor.
Si eso ya lo sé, pero lo que quiero saber es cómo entiende el ordenador que el numero entero que contiene la variable del socket es X dirección IP, y no un numero aleatorio.
¿Es relevante la estructura o puede ser eliminada despues de haber aceptado la conexion?
Justicia es dar a cada uno lo que se merece

ivancea96

Si te refieres al número del tipo SOCKET, es un identificador. Los datos los guarda el SO.