Socket en .net

Solo disponible en BuenasTareas
  • Páginas : 13 (3185 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de marzo de 2011
Leer documento completo
Vista previa del texto
LA CLASE SOCKET EN .NET
La clase Socket proporciona un extenso conjunto de métodos y propiedades para las comunicaciones en red. La clase Socket permite realizar transferencias de datos sincrónicas y asincrónicas mediante cualquiera de los protocolos de comunicación incluidos en la enumeración ProtocolType.
La clase Socket sigue el modelo de denominación de .NET Framework para los métodossincrónicos. Por ejemplo, el método asincrónico Receive corresponde a los métodos asincrónicos BeginReceive y EndReceive.
Si la aplicación sólo requiere un subproceso durante su ejecución, utilice los métodos siguientes, diseñados para el modo de funcionamiento sincrónico.
Si utiliza un protocolo basado en conexiones como TCP, el servidor podrá escuchar las conexiones mediante el método Listen. Elmétodo Accept procesa las solicitudes de conexión entrantes y devuelve un Socket que puede usar para intercambiar datos con el host remoto. Use este valor devuelto de Socket para llamar al método Send o Receive. Llame al método Bind antes de llamar al método Listen si desea especificar la dirección IP local y el número de puerto. Utilice cero como número de puerto si lo que desea es que elproveedor de servicios subyacente le asigne un puerto libre. Para conectar con un host de escucha, llame al método Connect. Para comunicar datos, llame al método Send o Receive.
Si utiliza un protocolo sin conexión como UDP, no es necesario escuchar las conexiones. Llame al método ReceiveFrompara aceptar los datagramas entrantes. Utilice el método SendTo para enviar datagramas a un host remoto.
Conel fin de procesar las comunicaciones mediante diferentes subprocesos durante la ejecución, utilice los métodos siguientes, diseñados para el modo de funcionamiento asincrónico.
Si utiliza un protocolo orientado a conexiones como TCP, use los métodos Socket, BeginConnect y EndConnect para conectar con un puerto de escucha. Use los métodos BeginSend y EndSend o BeginReceive y EndReceive paracomunicar datos asincrónicamente. Las solicitudes de conexión entrantes pueden procesarse mediante BeginAccept y EndAccept.
En protocolos sin conexión, como UDP, se puede utilizar BeginSendTo y EndSendTo para enviar datagramas y BeginReceiveFrom y EndReceiveFrom para recibirlos.
Si realiza varias operaciones asincrónicas en un socket, no tienen que completarse necesariamente en el orden en que seinician.
Cuando termine de enviar y recibir datos, use el método Shutdown para deshabilitar Socket. Después de llamar a Shutdown, llame al método Close para liberar todos los recursos asociados al Socket.
La clase Socket permite configurar Socket mediante el método SetSocketOption. El método GetSocketOption permite recuperar esta configuración.
Nota |
Si está escribiendo una aplicaciónrelativamente sencilla y no necesita un rendimiento máximo, puede plantearse utilizar TcpClient, TcpListener y UdpClient. Estas clases proporcionan una interfaz más sencilla y fácil de usar para las comunicaciones con Socket. |
Ejemplos

En el siguiente ejemplo de código se muestra cómo utilizar la clase Socket para enviar datos a un servidor HTTP y recibir respuesta. Así, el ejemplo sebloquea hasta que se recibe la página completa.

VB
C#
C++
F#
JScript

Copiar

Imports System
Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports Microsoft.VisualBasic

Public Class GetSocket

Private Shared Function ConnectSocket(server As String, port As Integer) As Socket
Dim s As Socket = Nothing
Dim hostEntry AsIPHostEntry = Nothing

' Get host related information.
hostEntry = Dns.GetHostEntry(server)

' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
' an exception that occurs when the host host IP Address is not compatible with the address family
' (typical in the IPv6 case).
Dim address As IPAddress...
tracking img