PDF de programación - Sockets en Java

Imágen de pdf Sockets en Java

Sockets en Javagráfica de visualizaciones

Actualizado el 24 de Mayo del 2019 (Publicado el 24 de Julio del 2018)
2.190 visualizaciones desde el 24 de Julio del 2018
428,9 KB
7 paginas
Creado hace 12a (21/04/2012)
Sockets en Java

Uso de Sockets

Este pequeño manual, le muestra cómo funciona el Socket Server para crear un pequeño servidor web
que envía una página HTML a cualquier Navegador Web como Firefox, Internet Explorer, etc.
By: John Michel Rivera de León. [email protected]



“La Creatividad proviene de

un conflicto de ideas”

By: John Michel Rivera de León

Sockets en Java

Uso de Sockets

Sockets


Sockets

Los sockets (conectores) permiten la comunicación de

Este manual le muestra

procesos. La comunicación entre procesos consiste en la

cómo crear un pequeño

transmisión de un mensaje entre un conector de u proceso

y un conector de otro proceso. Para los procesos receptores

de mensajes, su conector debe estar asociado a un puerto

local y a una de las direcciones de internet del computador

donde se ejecuta, cada conector puede enviar como recibir.

Un computador permite (216) puertos posibles, Cada

servidor web que envía

una página HTML a

cualquiera que ingresa

a su dirección IP por

medio de un Navegador

Web, sin necesidad de

tener que instalar Un



a
v
a
J

n


e

s
t
e
k
c
o
S

conector se asocia con un protocolo concreto que puede

servidor web como

ser TCP o UDP.



Utilización de TCP.

Muchos de

los servicios utilizados se ejecutan sobre

conexiones TCP, con número de puerto reservado.

Apache.



HTTP

FTP

SMTP



1

By: John Michel Rivera de León

El API Java para los streams TCP.

La interfaz Java para los streams TCP está constituida por las clases ServerSocket y

Socket.

ServerSocket

Esta clase esta diseñada para ser utilizada por un servidor para crear un conector

en el puerto de servidor que escucha las peticiones de conexión de los clientes. Su

método accept toma una petición connect de la cola, si la cola esta vacía, se

bloqueará hasta que llega una petición. EL resultado de ejecutar accept es una

instancia de socket, un conector que da acceso es una instancia de socket, un

conector que da acceso a streams para comunicarse con el cliente.

Socket.

Esta clase es utilizada por el par de procesos de una conexión. El cliente utiliza un

constructor para crear un conector, especificando el nombre de DNS de host y el

puerto de servidor. Este constructor no solo crea el conector asociado con el

puerto local, sino que también se conecta con el computador remoto especificado

en el puerto indicado.



Caracterí sticas de la comunicacio n entre procesos.

Comunicacio n así ncrona y sí ncrona.



a
v
a
J

n
e

s
t
e
k
c
o
S



2

La comunicación entre procesos puede ser síncrona o asíncrona entre un emisor y
un receptor. A cada destino de mensajes se asocia una cola. Los procesos
emisores producen mensajes que serán añadidos a las colas remotas mientras que
los procesos receptores eliminarán mensajes de las colas locales.



By: John Michel Rivera de León

Sí ncrona.


Los procesos receptor y emisor se sincronizan con cada mensaje. En este caso,
tanto envía como recibe son operaciones bloqueantes. A cada envía producido, el
proceso emisor se bloquea hasta que se produce el correspondiente recibe.
Cuando se invoca el recibe, el proceso se bloquea hasta que llega el mensaje.

Así ncrona

La utilización envía es no bloqueante, de modo que el proceso emisor puede
continuar tan pronto como el mensaje haya sido copiado en el búfer local, y la
transmisión del menaje de lleva a cabo o en paralelo con el proceso emisor.

Creando un Servidor Web ba sico con Sockets


Creamos un clase que contendrá un server socket que estará a la escucha de

peticiones por el puerto 80. El server socket se queda a la espera hasta que una

petición llega, entonces lo acepta con la instrucción Socket remote = s.accept();

Una vez que se acepta el cliente, se le envía la información de las cabeceras HTTP,

y posteriormente la página HTML. Una vez enviado todo, se libera el socket para

aceptar una nueva conexión de algún cliente.



package servidorweb;



/**

*

* @author Lionel

*/

import java.net.*;

import java.io.*;



public class ServidorWeb {



a
v
a
J

n


e

s
t
e
k
c
o
S



3

By: John Michel Rivera de León



protected void start()

{

ServerSocket s;

System.out.println("Servidor web iniciado en el puerto 80");

System.out.println("presione ctrl-c to exit");

try {

// Crea el socket del servidor inicial

s = new ServerSocket(80);

} catch ( Exception e ) {

System.out.println("Error: " + e );

return;

}

System.out.println("Esperando Conexiones");

for ( ;; ) {

try {

// espera por una conexion

Socket remote = s.accept();

// se acepta la conexion

System.out.println("Conexion, Enviando datos.");

BufferedReader in = new BufferedReader(

new InputStreamReader(remote.getInputStream()) );

PrintWriter out = new PrintWriter(remote.getOutputStream());



// leer los datos enviados,

// para de leer hasta que lee el fin de linea, es decir la linea en blanco

// la linea en blaco es la señal de fin de las cabeceras HTTP



String str=".";

while ( !str.equals("") )

str = in.readLine();

// Manda la respuesta

// Manda las cabeceras

out.println("HTTP/1.0 200 OK");

out.println("Content-Type: text/html");



a
v
a
J

n
e

s
t
e
k
c
o
S



4

By: John Michel Rivera de León

out.println("Servidor: Bot");

// esta linea en blanco indica el final de las cabeceras

out.println("");

// Mandamos la pagina HTML

out.println( "<H1>Bienvenidos al servidor Web</H2>");

out.println( "<p>Esta es una pagina html de prueba xD.</p>");

out.println( "<p><marquee>---Fin de la pagina--- </marquee></p>");

out.flush(); //envia los datos

remote.close();

} catch ( Exception e ) {

System.out.println("Error: " + e );

}

}

}



public static void main(String args[])

{

ServidorWeb ws = new ServidorWeb();

ws.start();

}



}



a
v
a
J

n


e

s
t
e
k
c
o
S



5

By: John Michel Rivera de León



Iniciamos el servidor web desde consola, con java –jar *.jar:


Ingresamos desde un navegador web cualquier, en este caso fire fox:



a
v
a
J

n
e

s
t
e
k
c
o
S



Observamos que nos despliega la página web, y además dentro del servidor se registra la
entrada del cliente:

Y Listo. Ya creamos un Pequeño servidor web que envía una página HTML a cualquiera que
ingrese a nuestra dirección IP, sin necesidad de instalar Apache o algún otro servidor web.

Saludos xD.

Visita mi perfil y busca todos los manuales disponibles como:

JavaFx

MPI Java (Computo paralelo con Java)



6

Creacion de Software matemático y graficas 3D

Servidores web, DNS, DHCP, Apache tomcat, Mono, PHP, MySQL, etc.
  • Links de descarga
http://lwp-l.com/pdf12695

Comentarios de: Sockets en Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad