Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (java) [Seleccionar]
import java.io.*;
import java.net.*;
class Cliente {
static final String HOST = "localhost";
static final int PUERTO=5000;
public Cliente( ) {
try{
Socket skCliente = new Socket( HOST , Puerto );
InputStream aux = skCliente.getInputStream();
DataInputStream flujo = new DataInputStream( aux );
System.out.println( flujo.readUTF() );
skCliente.close();
} catch( Exception e ) {
System.out.println( e.getMessage() );

}
}
public static void main( String[] arg ) {
new Cliente();
}
}

Y tengo el programa servidor

import java.io.* ;
import java.net.* ;
class Servidor {
static final int PUERTO=5000;
public Servidor( ) {
try {
ServerSocket skServidor = new ServerSocket(PUERTO);
System.out.println("Escucho el puerto " + PUERTO );
for ( int numCli = 0; numCli < 3; numCli++; ) {
Socket skCliente = skServidor.accept(); // Crea objeto
System.out.println("Sirvo al cliente " + numCli);
OutputStream aux = skCliente.getOutputStream();
DataOutputStream flujo= new DataOutputStream( aux );
flujo.writeUTF( "Hola cliente " + numCli );
skCliente.close();
}
System.out.println("Demasiados clientes por hoy");
} catch( Exception e ) {
System.out.println( e.getMessage() );
}
}
public static void main( String[] arg ) {
new Servidor();
}
}


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 (java) [Seleccionar]
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 (java) [Seleccionar]
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 (java) [Seleccionar]
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 (java) [Seleccionar]
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 (java) [Seleccionar]
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!