Foro de elhacker.net

Programación => Java => Mensaje iniciado por: luzmery en 9 Octubre 2017, 08:46 am



Título: Explicacion sobre sockets
Publicado por: luzmery en 9 Octubre 2017, 08:46 am
Hola tengo el programa cliente
Código
  1. import java.io.*;
  2. import java.net.*;
  3. class Cliente {
  4. static final String HOST = "localhost";
  5. static final int PUERTO=5000;
  6. public Cliente( ) {
  7. try{
  8. Socket skCliente = new Socket( HOST , Puerto );
  9. InputStream aux = skCliente.getInputStream();
  10. DataInputStream flujo = new DataInputStream( aux );
  11. System.out.println( flujo.readUTF() );
  12. skCliente.close();
  13. } catch( Exception e ) {
  14. System.out.println( e.getMessage() );
  15.  
  16. }
  17. }
  18. public static void main( String[] arg ) {
  19. new Cliente();
  20. }
  21. }
  22.  
  23. Y tengo el programa servidor
  24.  
  25. import java.io.* ;
  26. import java.net.* ;
  27. class Servidor {
  28. static final int PUERTO=5000;
  29. public Servidor( ) {
  30. try {
  31. ServerSocket skServidor = new ServerSocket(PUERTO);
  32. System.out.println("Escucho el puerto " + PUERTO );
  33. for ( int numCli = 0; numCli < 3; numCli++; ) {
  34. Socket skCliente = skServidor.accept(); // Crea objeto
  35. System.out.println("Sirvo al cliente " + numCli);
  36. OutputStream aux = skCliente.getOutputStream();
  37. flujo.writeUTF( "Hola cliente " + numCli );
  38. skCliente.close();
  39. }
  40. System.out.println("Demasiados clientes por hoy");
  41. } catch( Exception e ) {
  42. System.out.println( e.getMessage() );
  43. }
  44. }
  45. public static void main( String[] arg ) {
  46. new Servidor();
  47. }
  48. }

Quisiera que me explicaran linea por linea lo que hace el codigo, para comprender mejor el tema sobre los socket gracias de antemano.


· Los códigos deben ir en etiquetas GeSHi
· Los temas van en su respuesctivo subforo, esto es sobre programación, especificamente java (movido)
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Explicacion sobre sockets
Publicado por: MCKSys Argentina en 9 Octubre 2017, 15:36 pm
Cliente:

Código
  1. Socket skCliente = new Socket( HOST , Puerto );
https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#Socket(java.net.InetAddress,%20int) (https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#Socket(java.net.InetAddress,%20int))

Código
  1. InputStream aux = skCliente.getInputStream();
https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#getInputStream() (https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#getInputStream())

Código
  1. DataInputStream flujo = new DataInputStream( aux )
https://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html#DataInputStream(java.io.InputStream) (https://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html#DataInputStream(java.io.InputStream))

Código
  1. System.out.println( flujo.readUTF() );
https://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html#readUTF() (https://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html#readUTF())
https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out (https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out)
https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println-java.lang.String- (https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println-java.lang.String-)

Código
  1. skCliente.close();
https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#close() (https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#close())

Saludos!