Sockets programming - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Sockets programming

Description:

Sockets programming Tipos de datos. Tipos de datos mas usados en programas cliente-servidor: u-char Unsigned 8-bit character. u-short Unsigned 16-bit integer. u-long ... – PowerPoint PPT presentation

Number of Views:168
Avg rating:3.0/5.0
Slides: 27
Provided by: Jessica441
Category:

less

Transcript and Presenter's Notes

Title: Sockets programming


1
Sockets programming
2
Tipos de datos.
  • Tipos de datos mas usados en programas
    cliente-servidor
  • u-char
  • Unsigned 8-bit character.
  • u-short
  • Unsigned 16-bit integer.
  • u-long
  • Unsigned 32-bit integer.

3
Internet Address Structure
  • Las direcciones de IPv4 se definen como una
    estructura (struct en C).
  • La estructura guarda un numero binario de 32 bits
    (IP address).
  • Struct in_addr
  • u_long s_addr

4
SOCKETS
  • Un socket actua como un end point. Para que 2
    procesos se comuniquen necesitan una estructura
    socket
  • SOCKET ADDRESS STRUCTURE
  • Struct sockaddr_in
  • u_char sin_len
  • u_short sin_family
  • u_short sin_port
  • struct in_addr sin_addr
  • char sin_zero 8

5
Campos de la estructura SOCKET
  • Family IPv4, IPv6, UNIX (Grupo de protocolos).
  • Type stream, datagram, raw (Tipo de socket).
  • Protocol valor de 0 para TCP o UDP.
  • Local socket address.
  • Remote socket address.

6
Socket structure
Family
Type
Protocol
Local Socket Address
Remote Socket Address
7
Socket Types
Application Program
TCP
UDP
IP
Physical and data link layers
  • Raw Socket.
  • Utilizado para aplicaciones que usan protocolos
    que interactuan directamente con los servicios IP
    (ej.- ICMP, OSPF).

8
SOCKET SYSTEM CALLS
  • Funciones definidas para llamar desde una
    aplicacion a otra
  • Socket
  • Bind
  • Connect
  • Listen
  • Accept
  • Sendto
  • Recvfrom
  • Read
  • Write
  • Close

9
Funciones.
  • Socket
  • Esta funcion crea un socket.
  • Int socket (int family, int type, int protocol)
  • Bind
  • Asocia un socket con una direccion local de
    socket.
  • Int bind (int sockfd, const struct socketaddr_in
    localaddr, int localaddrlen)

10
Funciones.
  • Connect
  • Es utilizado por un proceso para establecer una
    conexion activa con un proceso remoto.
  • Int connect (int sockfd, const struct sockaddr_in
    serveraddr, int serveraddrlen)
  • Listen
  • Es utilizada unicamente por un servidor TCP.
    Crea un socket pasivo para un socket que aun no
    se conecta.
  • Int listen (int sockfd, int backlog)

11
Funciones.
  • Accept
  • La utiliza un TCP Server para remover la primera
    requisicion de conexion que se encuentra en la
    fila.
  • Int accept (int sockfd, const struct sockaddr_in
    clientaddr, int client addrlen)
  • Sendto
  • Es utilizada por un proceso usando UDP para
    enviar un mensaje hacia un proceso remoto.
  • Int sendto (int sockfd, const void buf, int
    buflen, int flags, const struct sockaddr_in
    toaddr, int toaddrlen)

12
Funciones.
  • Read
  • Es utilizada por un proceso para recibir datos de
    otro proceso remoto (se asume que ya hay una
    conexion abierta - TCP).
  • Int read (int sockfd, const void buf, int
    buflen)
  • Recvfrom
  • Extrae el siguiente mensaje que llega a un
    socket.
  • Int recvfrom (int sockfd, const void buf, int
    buflen, int flags, const struct sockaddr_in
    fromaddr, int fromaddrlen)

13
Funciones.
  • Write
  • Usada por un proceso para enviar datos a un
    proceso remoto (se asume que ya existe conexion
    activa - TCP).
  • Int write (int sockfd, const void buf, int
    buflen)
  • Close
  • Es utilizada por un proceso para cerrar un socket
    y terminar la conexion.
  • Int close (int sockfd)

14
Connectionless
  • SERVER
  • Opening a socket.
  • Binding.
  • Repeating the steps
  • Receiving.
  • Sending.

15
Connectionless
  • CLIENT.
  • Opening a socket.
  • Repeating the steps
  • Receiving.
  • Sending.
  • Closing.

16
Connection-oriented
  • SERVER.
  • Opening a socket.
  • Binding.
  • Listening.
  • Repeating the steps
  • Accepting
  • Forking.
  • Repeating
  • Reading.
  • Processing.
  • Writing.
  • Closing the communication socket.

17
Connection-oriented
  • CLIENT.
  • Opening a socket.
  • Connecting.
  • Repeating the steps
  • Writing.
  • Reading.
  • Closing.

18
Ejemplo en Java.
19
ServerSocket
  • Al implementar un servidor necesitamos crear un
    objeto socket llamado ServerSocket para
    escuchar y aceptar conexiones de clientes.

20
Input Stream
  • Se utiliza la clase DataInputStream. Para crear
    un stream del lado del cliente

21
Input Stream
  • La clase DataInputStream permite leer lineas de
    texto y tipo de datos primitivos de Java. Se
    pueden utilizar metodos como read, readChar,
    readInt, readDouble, y readLine,.
  • Para recibir un stream del lado del servidor

22
Output Stream
  • En el cliente se crea un output stream para
    enviar datos al servidor con las clases
    PrintStream or DataOutputStream de java.io.

23
Server output
  • En el servidor se pueden utilizar las mismas
    clases para enviar informacion al cliente.
  • Ejemplo con PrintStream

24
Para cerrar un socket.
25
Bibliografia y sitios recomendados.
  • Programacion en Java
  • http//www.javaworld.com/javaworld/jw-12-1996/jw-1
    2-sockets-p2.html
  • Socket Programming HOWTO (phyton)
  • http//www.amk.ca/python/howto/sockets/

26
  • An Introduction to Socket Programming - C.
  • http//www.uwo.ca/its/doc/courses/notes/socket/
  • Sockets Programming.
  • http//www.scit.wlv.ac.uk/jphb/comms/sockets.html
Write a Comment
User Comments (0)
About PowerShow.com