Sei sulla pagina 1di 4

Socket (AddressFamily, Inicializa una instancia nueva de la clase socket SocketType, ProtocolType) con la familia de direcciones, el tipo de socket

y el protocolo que se especifiquen. Compatible con .NET Compact Framework. Sincrnico

La clase Socket proporciona un extenso conjunto de mtodos y propiedades para las comunicaciones en red. La clase Socket permite realizar transferencias de datos sincrnicas y asincrnicas mediante cualquiera de los protocolos de comunicacin incluidos en la enumeracin ProtocolType. La clase Socket sigue el modelo de nomenclatura de .NET Framework para los mtodos asincrnicos; por ejemplo, el mtodo sincrnico Receive se corresponde con los mtodos asincrnicos BeginReceive y EndReceive. Si la aplicacin slo requiere un subproceso durante su ejecucin, utilice los mtodos siguientes, diseados para el modo de funcionamiento sincrnico. Si utiliza un protocolo basado en conexiones como TCP, el servidor podr escuchar las conexiones mediante el mtodo Listen. El mtodo Accept procesa las solicitudes de conexin entrantes y devuelve un Socket que puede usar para intercambiar datos con el host remoto. Use este valor devuelto de Socket para llamar al mtodo Send o Receive. Llame al mtodo Bind antes de llamar al mtodo Listen si desea especificar la direccin IP local y el nmero de puerto. Utilice cero como nmero de puerto si lo que desea es que el proveedor de servicios subyacente le asigne un puerto libre. Para conectar con un host de escucha, llame al mtodo Connect. Para comunicar datos, llame al mtodo Send o Receive.

Si utiliza un protocolo sin conexin como UDP, no es necesario escuchar las conexiones. Llame al mtodo ReceiveFrompara aceptar los datagramas entrantes. Utilice el mtodo SendTo para enviar datagramas a un host remoto.

Con el fin de procesar las comunicaciones mediante diferentes subprocesos durante la ejecucin, utilice los mtodos siguientes, diseados para el modo de funcionamiento asincrnico. Si utiliza un protocolo orientado a conexiones como TCP, use los mtodos Socket, BeginConnect y EndConnect para conectar con un puerto de escucha. Use los mtodos BeginSend y EndSend o BeginReceive y EndReceive para comunicar datos asincrnicamente. Las solicitudes de conexin entrantes pueden procesarse mediante BeginAccept y EndAccept.

En protocolos sin conexin, como UDP, se puede utilizar BeginSendTo y EndSendTo para enviar datagramas y BeginReceiveFrom y EndReceiveFrom para recibirlos.

Si realiza varias operaciones asincrnicas en un socket, no tienen que completarse necesariamente en el orden en que se inician. Cuando termine de enviar y recibir datos, use el mtodo Shutdown para deshabilitar Socket. Despus de llamar a Shutdown, llame al mtodo Close para liberar todos los recursos asociados al Socket. La clase Socket permite configurar Socket mediante el mtodo SetSocketOption. El mtodo GetSocketOption permite recuperar esta configuracin. Nota Si est escribiendo una aplicacin relativamente sencilla y no necesita un rendimiento mximo, puede plantearse utilizar TcpClient, TcpListener y UdpClient. Estas clases proporcionan una interfaz ms sencilla y fcil de usar para las comunicaciones con Socket.

AddressFamily especifica el esquema de direcciones que puede utilizar una instancia de la clase Socket. Esta propiedad es de slo lectura y se establece cuando se crea Socket. Para que Socket pueda enviar y recibir datos, primero debe crearse con AddressFamily, SocketType y ProtocolType. La enumeracin SocketType proporciona varias opciones para definir el tipo de Socket que se desea abrir. SocketType Especifica los protocolos que admite la clase Socket.

Propiedades pblicas Nombre AddressFamily LocalEndPoint ProtocolType RemoteEndPoint SocketType Mtodos pblicos Nombre Accept Bind Descripcin Crea un nuevo objeto Socket para una conexin recin establecida. Asocia un objeto Socket a un extremo local. Descripcin Obtiene la familia de direcciones de Socket. Obtiene el extremo local. Obtiene el tipo de protocolo de Socket. Obtiene el extremo remoto. Obtiene el tipo de Socket.

Close Connect Listen Receive Send

Sobrecargado. Cierra la conexin Socket y libera todos los recursos asociados. Sobrecargado. Establece una conexin a un host remoto. Coloca un objeto Socket en un estado de escucha. Sobrecargado. Recibe datos de un objeto Socket enlazado. Sobrecargado. Enva datos a un objeto Socket conectado.

Shutdown Deshabilita los envos y recepciones en un objeto Socket.


La clase TcpClient proporciona mtodos sencillos para conectar, enviar y recibir secuencias de datos a travs de una red en modo de bloqueo sincrnico. Para que TcpClient pueda conectarse e intercambiar datos, debe haber un TcpListener o Socket creado con el tipo de protocolo (ProtocolType) TCP a la escucha para solicitudes de conexin entrantes. Se puede establecer conexin con este agente de escucha de dos maneras diferentes:

Cree un TcpClient y llame a uno de los tres mtodos Connect disponibles.

Cree un TcpClient mediante el nombre de host y el nmero de puerto del host remoto. Este constructor intentar automticamente realizar una conexin.

Nota Si desea enviar datagramas sin conexin en modo de bloqueo sincrnico, utilice la clase UdpClient.
Notas para los herederos Para enviar y recibir datos, use el mtodo GetStream con el fin de obtener una NetworkStream. Llame a los mtodos Write y Read de NetworkStream para enviar y recibir datos del host remoto. Utilice el mtodo Close para liberar todos los recursos asociados a TcpClient.

La clase TcpListener proporciona mtodos sencillos para escuchar y aceptar solicitudes de conexin entrantes en modo de bloqueo sincrnico. Se puede usar TcpClient o Socket para conectar con TcpListener. Cree una clase TcpListener mediante un objeto IPEndPoint, una direccin IP local y un nmero de puerto, o mediante tan slo un nmero de puerto. Especifique Any para la direccin IP local y 0 para el nmero de puerto local si desea que el proveedor de servicios subyacente asigne estos valores. Si opta por esto ltimo, puede utilizar la propiedad LocalEndpoint para identificar la informacin asignada, una vez que se haya conectado el socket. Utilice el mtodo Start para comenzar la escucha de solicitudes de conexin entrantes. Start pondr en cola las conexiones entrantes hasta que llame al mtodo Stop o hasta que haya puesto en cola MaxConnections. Utilice AcceptSocket o AcceptTcpClient para retirar una conexin de la cola de solicitudes de conexin entrantes. Estos dos mtodos se bloquearn. Si desea evitar el bloqueo, utilice primero el mtodo Pending para determinar si hay solicitudes de conexin disponibles en la cola. Llame al mtodo Stop para cerrar TcpListener.

La clase UdpClient proporciona mtodos sencillos para enviar y recibir datagramas UDP sin conexin en modo de bloqueo sincrnico. Dado que UDP es un protocolo de transporte sin conexin, no es necesario establecer una conexin con el host remoto antes de enviar y recibir datos. Existe, sin embargo, la opcin de establecer un host remoto predeterminado de una de estas dos maneras:

Cree una instancia de la clase UdpClient utilizando el nombre y el nmero de puerto del host remoto como parmetros. Cree una instancia de la clase UdpClient y luego llame al mtodo Connect.

Se puede utilizar cualquiera de los mtodos de envo proporcionados en UdpClient para enviar datos a un dispositivo remoto. Utilice el mtodo Receive para recibir datos procedentes de hosts remotos. La clase IPEndPoint contiene la informacin de puerto local o remoto y host que necesita una aplicacin para conectarse a un servicio en un host. Mediante la combinacin de la direccin IP del host y del nmero de puerto de un servicio, la clase IPEndPoint forma un punto de conexin a un servicio.

AddressFamily Especifica el servicio de direcciones que puede utilizar una instancia de la clase
Socket, como InterNetworkV6 que es para direcciones IP ver. 4, NetBios para direcciones tipo NetBIos. SocketType Especifica el tipo de socket que representa una instancia de la clase Socket, como Dgram para datagramas y Stream para secuencias de Bytes. ProtocolType Define el tipo de protocolo que se utilizara en el socket, por ejemplo TCP o UDP.

Potrebbero piacerti anche