Artes
Tema 2.- Nivel de aplicación en Internet
Dr. Daniel Morató
Redes de Computadores
Ingeniero Técnico en Informática de
Gestión, 2º curso
Sockets y UDP
UDP: no hay “conexión”entre cliente y servidor
» no hay handshaking
» El emisor debe indicar
explícitamente
la
dirección IP y el puerto
del destino para cada
paquete
» El servidor debe extraer la
dirección IP y elpuerto
del emisor del paquete
Para la aplicacación
UDP ofrece transferencia no fiable
de grupos de bytes (“datagramas”)
entre el cliente y el servidor
UDP: los datos pueden
recibirsedesordenados o
incluso perderse
3 Nov
Sockets UDP
1/12
1
Creación de un Socket
int socket(int domain, int type, int protocol)
» int domain
Hay diferentes tipos de sockets
diferentesfamilias de protocolos
para
» int type
SOCK_STREAM, SOCK_DGRAM, (otros)
» int protocol
En caso de que haya varios protocolos en la
misma categoría
3 Nov
Sockets UDP
2/12Enviar datagrama
int sendto(int s, void* msg, int len, int flags,
struct sockaddr *to, int tolen)
» int s
Socket
» void* msg
Puntero a la zona de memoria con los bytes a enviar
» int len Número de bytes de esa zona de memoria a enviar
» int flags
Opciones
» struct sockaddr *to
Puntero a estructura con dirección IP y puerto del receptor
» int tolen
Tamaño de laestructura anterior
3 Nov
Sockets UDP
3/12
2
Recibir datagrama
» int recvfrom(int s, void* buf, int len, int
flags, struct sockaddr *from, int *fromlen)
» int s
Socket
» void *buf Zona de memoria donde guardar lo recibido (debe estar
reservada!)
» int len
Espacio máximo a emplear en esa zona de memoria
» int flags
Opciones
» struct sockaddr *from
Punteroa zona de memoria que la función rellena con una
estructura que incluye la dirección y puerto del emisor
» int *fromlen
Al llamar a la función debe ser el tamaño de la zona de
memoria...
Regístrate para leer el documento completo.