Winsock para .Net

Una de las cosas que siempre me han gustado es la transferencia de datos por medio de la red. No necesariamente la descarga de MP3 , si no, el poder crear código para que dos aplicaciones se conecten entre si, y dialoguen.
 
Así fue que llegue a conocer el control WinSock en Visual Basic, del cual me enamore, e hice con él, todo tipo de aplicaciones.
 
El punto esta en que pasando a .Net, no encontre este control, asi que me puse manos a la obra para crear una clase que haga mas o menos lo mismo.
 
Y aquí está. Esta clase es parte de una aplicación hecha para Pocket PC. La aplicación es un juego de ajedrez, que entre sus funciones, puede ser jugado entre dos Pockets por medio de una aplicacion intermedia, la cual sería el servidor de datos de los juegos.
 
En definitva, aquí va la clase.
 

Imports

System.Net.Sockets

Imports

System.Text

Public Class Socket

   Private oSocket As New TcpClient

   Private oNetStream As NetworkStream

   Private _strServer As String

   Private _lngPort As Long

   Private _blnActiveConnection As Boolean = False

 

   Public Event SocketRespond(ByVal Response As String)

 

   Public WriteOnly Property ServerName() As String

      Set(ByVal Value As String)

         _strServer = Value

      End Set

   End Property

 

   Public WriteOnly Property Port() As Long

      Set(ByVal Value As Long)

         _lngPort = Value

      End Set

   End Property

 

   Public Sub SendData(ByVal strData As String)

      Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(strData)

      oNetStream.Write(sendBytes, 0, sendBytes.Length)

   End Sub

 

   Public Sub CloseConnection()

      _blnActiveConnection =

False

   End Sub

 

   Public Sub Listen()

      Try

         oSocket.Connect(_strServer, _lngPort)

         oNetStream = oSocket.GetStream

         _blnActiveConnection =

True

         Do While _blnActiveConnection

            If oNetStream.CanRead Then

               If oNetStream.DataAvailable Then

                  Dim strData As String

                  Dim ReadBytes(oSocket.ReceiveBufferSize) As Byte

                  Dim lngTotalBytes As Integer = oSocket.ReceiveBufferSize

                  oNetStream.Read(ReadBytes, 0, lngTotalBytes)

                  strData = Encoding.ASCII.GetString(ReadBytes, 0, lngTotalBytes)

                  RaiseEvent SocketRespond(strData)

               End If

            End If

            Application.DoEvents()

         Loop

         _blnActiveConnection = False

         oNetStream.Close()

         oSocket.Close()

      Catch ex As SocketException

         Throw ex

      End Try

   End Sub

End

Class


4 comentarios on “Winsock para .Net”

  1. Unknown dice:

    por favor estoy trabajando con winsock, resulta que estoy haciendo un pinpong
    pero no se como hacer para transmitir el movimiento del jugador
    yo tengo por el momento:

    shape2(rectangulo): jugador1
    shape1(circulo):pelota
    shape3:jugador2
    la pelota hace el movimiento y pues yo puedo jugar en mi pc yo sola, hice que el jugador 1 se moviera con la flecha arriba, abajo y el jugador2 con la izquierda y derecha, lo que no se es como hacer es como hacer para transmitir ese movimiento es dedir que el otro usuario vea mi movimiento y viceversa
    por favor ayudame lo necesito urgente
    gracias por tu tiempo

  2. Bernardo dice:

    y como recibo los datos?
    osea el getdata.
     
    grx de antemano


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s