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

No puedo leer socket mas de 2 veces la data me sale vacia

Estas en el tema de No puedo leer socket mas de 2 veces la data me sale vacia en el foro de .NET en Foros del Web. Amigos soy nuevo en esto de sockets en verdad he puesto lo mejor de mi en esto, pero ya no se por donde darle, espero ...
  #1 (permalink)  
Antiguo 13/07/2009, 15:01
 
Fecha de Ingreso: febrero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
No puedo leer socket mas de 2 veces la data me sale vacia

Amigos soy nuevo en esto de sockets en verdad he puesto lo mejor de mi en esto, pero ya no se por donde darle, espero puedan ayudarme, el caso es el sgte:

Tengo un hilo el cual ejecuta un procedimiento, dentro de ese porcedimiento hay un while infinito que su mision es escuchar un puerto, sucede que ese puerto al leer data debe almacenarlo en variables las cuales son pasadas por parametro , pero resulta que la primera vez lo hace, pero la segunda y la tercer, y las q siguen no contiene nada, estan vacias, que debo hacer para q cuando bombardee el socket mas de una vez esta info yo pueda almacenarla en una variable siempre y luego hacer mis demas cosas...espero puedan ayudarme amigos...

aqui parte del code

Public Sub LeeTrama(ByRef longitud As Integer, ByRef trama As String)
Dim data As [Byte]()
Dim cadena As [String] = [String].Empty
Dim i As Int32

Try
data = New [Byte](1024) {} 'era 1029 se cambia 1024

If stream.CanRead Then

Do While stream.DataAvailable
i = stream.Read(data, 0, 5)
'longitud de la trama
cadena = System.Text.Encoding.ASCII.GetString(data, 0, i) '"00023"
longitud = Convert.ToInt32(cadena) 'longitud de la data que le o del socket
i = stream.Read(data, 0, longitud)
trama = System.Text.Encoding.ASCII.GetString(data, 0, i)
Loop

End If
Catch ex As Exception
Console.Write("error", ex)
End Try
  #2 (permalink)  
Antiguo 13/07/2009, 15:07
 
Fecha de Ingreso: noviembre-2007
Mensajes: 141
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: No puedo leer socket mas de 2 veces la data me sale vacia

En la web del guille tienen un ejemplo muy bueno sobre como crear sockets (Servidor/Cliente), miratelo
http://www.elguille.info/colabora/pu...cketsVBNET.htm

PD: Si tienes algun problema con el código solo dilo ;)
  #3 (permalink)  
Antiguo 13/07/2009, 16:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: No puedo leer socket mas de 2 veces la data me sale vacia

Gracias por el link, pero el tema es que cuando hago el debug y bombardeo el socket y puerto por cmd....telnet 192.168.1.11 5001, al tratar de leer la data solo lo hace laprimera vez, las posteriores no las toma las deja vacias, no se si sera por el sleep pequeño que le doy, en verdad no se q eestoy haciendo mal, es un solo socket y son varias peticiones.....ojala puedan ayudarme, parte del codigo de mi server es esta

Dim data As [Byte]()
Dim cadena As [String] = [String].Empty
Dim i As Int32

Try
data = New [Byte](1024) {} 'era 1029 se cambia 1024

If stream.CanRead Then

Do While stream.DataAvailable
i = stream.Read(data, 0, 5)
'longitud de la trama
cadena = System.Text.Encoding.ASCII.GetString(data, 0, i) '"00023"
longitud = Convert.ToInt32(cadena) 'longitud de la data que le o del socket
i = stream.Read(data, 0, longitud)
trama = System.Text.Encoding.ASCII.GetString(data, 0, i)
Loop

End If

Catch ex As Exception
Console.Write("error", ex)
End Try
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




La zona horaria es GMT -6. Ahora son las 05:38.