La clase java.net.ServerSocket
Esta clase es utilizada por el servidor para recibir conexiones d elos clientes media en protocolo TCP. Toda aplicacion que actue como servidor crearar una instancia de esta clase y llamara a su metodo accept(); la llamada hara que la aplicacion se bloquee(esto es, que permanezca esperando) hasta que llegue una conexion por parte de algun cliente. Cuando suceda esto, el metodo accept() creara una instancia de la clase java.net.Socket que usara para comunicarse con el cliente. Nada impide que un servidor tenga un unico objeto ServerSocket y muchos objetos Socket asociados( cada uno a un cliente concreto).
Un objeto ServerSocket es siempre un socket pasivo. En la documentacion de Sun y en muchos libros se consdiera que los ServerSockets son "sockets de servidor". A criterio del autor es na identificacion ambigua: un socket de servidor es un socket que reside en el servidor, ya sea pasivo (ServerSocket) o activo (Socket).
Se usara "socket de servidor" para referirme a un objeto ServerSocket.
Bruce Eckel considera equivoco el termino ServerSocket, pues las clases java.net.ServerSocket y java. net.Socket no estan relacionadas por herencia ni desciendenn de una superclase comun.
Los constructores mas habituales de la clase ServerSocket son estos:
public ServerSocket(int puerto) throws IOException
public ServerSocket(int puerto, int longitudCola) throws IOException
public ServerSocket(int puerto, int longitudCola, InetAddress dirInternet) throws IOException
El argumento puerto es el numero del puerto utilizado por el socket del servidor para escuchar las peticines TCP de los clientes; el entero longitudCola es la longitud maxima de la cola para conexiones entrantes; por ultimo, dirInternet es un objeto InetAddress.
Resulta importante resaltar que la cola de conexiones entrantes es de tipo FIFO (Primero en entrar, primero en salir) y que su longitud maxima viene determinada por el sistema operativo. Es decir: si el argumento longitudCola supera el tamaño maximo de la cola establecida por el sistema operativo, se usara en realidad este ultimo valor sin que se genere ningun aviso para el programador.En el caso de que la cola este llena, el objeto ServerSocket rechazara nuevas conexiones hasta que surjan huecos en ella.
Las instancias de la clase java.net.InetAddress representan direcciones IP. Esta clase no tiene constructores publicos. Para obtener un objeto InetAddress, hay que llamar al metodo estatico byName() con un argumento de tipo String que representa el nombre de un nodo ("www.uv.es", por ejemplo) o una direccion IP ("12.4.234.11", por ejemplo). InetAddress proporciona un metodo -getHostName()- para averiguar el nombre del ordenador local. Los dos siguientes ejemplos serviran para ilustrar el uso de esta clase (el priemro requiere conexion a Internet):
InformarConexionUV.java
0 Response to "La clase java.net.ServerSocket"
Publicar un comentario