Foros del Web » Programación para mayores de 30 ;) » .NET »

Otro post mas, este de TcpListener en VB.NET XD

Estas en el tema de Otro post mas, este de TcpListener en VB.NET XD en el foro de .NET en Foros del Web. Buenas tardes, otra vez !!! Bueno, bueno, bueno, espero nun agobiar muchu a los foreros de esta sección, pero es que las dudas cada día ...
  #1 (permalink)  
Antiguo 08/03/2005, 09:54
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Otro post mas, este de TcpListener en VB.NET XD

Buenas tardes, otra vez !!!

Bueno, bueno, bueno, espero nun agobiar muchu a los foreros de esta sección, pero es que las dudas cada día me carcomen más el cuerpu.

En fin, voy pal granu.

Bien, resulta que estoy intentando hacer un nuevo Messenger. Y como tovía nun ando muy bien de sockets, estoy empezando con TcpListener y TcpClient.

Por lo visto, el TcpListener, escucha las conexiones de modo sincrónico, es decir, que cuando se conecta un segundo cliente, si todavía no se ha desconectado el primero, va acumulando las respuestas a enviar al segundo, hasta que se desconecte el primero.

Claro, eso ya me rompe mis esquemas. Entonces, estoy probando de esta manera:


Tengo este método:
*******************

Public Sub Recibiendo()
Dim client As TcpClient
Dim stream As NetworkStream
Dim i As Int32
Dim bytes(1024) As Byte
Dim data As String
While True
data = Nothing
client = Servidor.AcceptTcpClient
stream = client.GetStream()
' Loop to receive all the data sent by the client.
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
' Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
MsgBox(data.ToString)
i = stream.Read(bytes, 0, bytes.Length)
End While
End While
End Sub

*******************

Y en el load del TcpListener los siguiente:
*******************

Servidor.Start()
Hebra = New Thread(AddressOf Recibiendo)
Hebra.Start()

*******************

Bien, entonces lo que he pensado, ha sido, en el método Recibiendo, despues de la línea client = Servidor.AcceptTcpClient. Poner un hilo que salga de la hebra creada en el Load.

¿Creen que eso sería factible?, ¿Creen que funcionaría? y ... ¿Como podría hacerlo?, jejeje.

Ya llevo unos días intentando esto, pero ná, no soy capaz de hacer que se comuniquen dos clientes a la vez con el servidor. ¿A parte de la solución que les di, creen que tb iria bien usando el AsyncCallBack?

En fin, haber que opinan los gurus.

Saludos.
__________________
Charlie.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 10:19.