Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Uso de Sockets
Este pequeo manual, le muestra cmo funciona el Socket Server para crear un pequeo servidor web que enva una pgina HTML a cualquier Navegador Web como Firefox, Internet Explorer, etc. By: John Michel Rivera de Len. Lionheart815@hotmail.com
Sockets en Java
Uso de Sockets Sockets Sockets
Los sockets (conectores) permiten la comunicacin de procesos. La comunicacin entre procesos consiste en la transmisin 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 (2 ) puertos posibles, Cada conector se asocia con un protocolo concreto que puede ser TCP o UDP.
16
Este manual le muestra cmo crear un pequeo servidor web que enva una pgina HTML a cualquiera que ingresa Sockets en Java a su direccin IP por medio de un Navegador Web, sin necesidad de tener que instalar Un servidor web como Apache.
Utilizacin de TCP.
Muchos de los servicios utilizados se ejecutan sobre conexiones TCP, con nmero de puerto reservado. HTTP FTP SMTP 1
ServerSocket
Esta clase esta diseada para ser utilizada por un servidor para crear un conector en el puerto de servidor que escucha las peticiones de conexin de los clientes. Su mtodo accept toma una peticin connect de la cola, si la cola esta vaca, se bloquear hasta que llega una peticin. EL resultado de ejecutar accept es una
Sockets en Java
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 conexin. 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 tambin se conecta con el computador remoto especificado en el puerto indicado.
Sncrona.
Los procesos receptor y emisor se sincronizan con cada mensaje. En este caso, tanto enva como recibe son operaciones bloqueantes. A cada enva 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.
Asncrona
La utilizacin enva es no bloqueante, de modo que el proceso emisor puede continuar tan pronto como el mensaje haya sido copiado en el bfer local, y la transmisin del menaje de lleva a cabo o en paralelo con el proceso emisor.
Sockets en Java
package servidorweb;
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;
Sockets en Java
} 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 seal de fin de las cabeceras HTTP
// Manda la respuesta // Manda las cabeceras out.println("HTTP/1.0 200 OK"); out.println("Content-Type: text/html");
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 ); } }
Sockets en Java
Sockets en Java
Observamos que nos despliega la pgina web, y adems dentro del servidor se registra la entrada del cliente:
Y Listo. Ya creamos un Pequeo servidor web que enva una pgina HTML a cualquiera que ingrese a nuestra direccin IP, sin necesidad de instalar Apache o algn otro servidor web. Saludos xD. Visita mi perfil y busca todos los manuales disponibles como: JavaFx MPI Java (Computo paralelo con Java)
Creacion de Software matemtico y graficas 3D Servidores web, DNS, DHCP, Apache tomcat, Mono, PHP, MySQL, etc.