Problemas al recibir datos en ListView desde Socket
Hola, tengo el siguiente problema que me tiene al borde de un colapso cerebral
Les explico y mas abajo el Codigo:
Tengo un ListView en el cual recibo los nombres de los Pc que se conectan
después a cada Item (Pc conectado) le debo enviar una cadena que me debe ser respondida, ahora:
Cuando recibo las Conexiones todo bien, cuando las seleciono y envío la cadena
todo bien, ahora el drama, cuando recibo la primera cadena (Pc1) que en el listView esta ubicado el el primer ListItem entonces no llega el nombre del Pc
coloque un Break en en la Linea If ListView.ListItems.Count = 0 Then
para que me diera la opcion de revisar el GetData strData y entonces este se
reporta como "", sin embargo si llega el Pc que en el listView esta registrado en
el Ultimo ListItem este si se reporta en el GetData strData, Que ocurre?, ya estoy
chato de este drama por favor chequeen este problema
CODE
Server
Private Sub sckServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
Dim busca As String 'Variable para realizar la busqueda en los SubItem
Dim Htxt As String 'Variable para asignar el item encontrado
Dim tItem As ListItem 'Créo una Variable Objeto
Dim s As String
Dim i As Long
Dim lvwFind As ListFindItemHowConstants
Dim lvwWhere As ListFindItemWhereConstants
skcServer(intMax).GetData strData
DoEvents
lvwWhere = lvwSubItem
busca = strData
If ListView.ListItems.Count = 0 Then
'Si ListView esta vacío ingreso el nuevo item y subitem
ListView.ListItems.Add , , intMax
ListView.ListItems(ListView.ListItems.Count).SubItems(1) = busca
Else
'De lo contrario busco la cadena entrante en el ListView
Set tItem = ListView.FindItem(busca, lvwWhere, 1, lvwFind)
'Si no Existe la ingresa como nuevo item
If tItem Is Nothing Then
MsgBox "Item no encontrado", , "Que onda"
'Se agrega nuevo item
ListView.ListItems.Add , , intMax
ListView.ListItems(ListView.ListItems.Count).SubItems(1) = busca
Else
'De lo contrario ya existe
If ListView.ListItems(ListView.ListItems.Count).SubItems(1) = busca Then
tItem.EnsureVisible 'Lo ubicamos
tItem.Selected = True 'Lo seleccionamos
ListView.SetFocus 'Le damos el foco al ListView
'Me encontraste, asi que Factúrame
MsgBox "Me encontraste, Felicidades", , "Busqueda Finalizada"
Private Sub skcServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Long
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
skcServer(intMax).LocalPort = 0
skcServer(intMax).Accept requestID
DoEvents
Cliente
Private Sub Timer2_Timer()
sckCliente.SendData sckCliente.LocalHostName
Timer2.Enabled = False
End Sub
Les explico y mas abajo el Codigo:
Tengo un ListView en el cual recibo los nombres de los Pc que se conectan
después a cada Item (Pc conectado) le debo enviar una cadena que me debe ser respondida, ahora:
Cuando recibo las Conexiones todo bien, cuando las seleciono y envío la cadena
todo bien, ahora el drama, cuando recibo la primera cadena (Pc1) que en el listView esta ubicado el el primer ListItem entonces no llega el nombre del Pc
coloque un Break en en la Linea If ListView.ListItems.Count = 0 Then
para que me diera la opcion de revisar el GetData strData y entonces este se
reporta como "", sin embargo si llega el Pc que en el listView esta registrado en
el Ultimo ListItem este si se reporta en el GetData strData, Que ocurre?, ya estoy
chato de este drama por favor chequeen este problema
CODE
Server
Private Sub sckServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
Dim busca As String 'Variable para realizar la busqueda en los SubItem
Dim Htxt As String 'Variable para asignar el item encontrado
Dim tItem As ListItem 'Créo una Variable Objeto
Dim s As String
Dim i As Long
Dim lvwFind As ListFindItemHowConstants
Dim lvwWhere As ListFindItemWhereConstants
skcServer(intMax).GetData strData
DoEvents
lvwWhere = lvwSubItem
busca = strData
If ListView.ListItems.Count = 0 Then
'Si ListView esta vacío ingreso el nuevo item y subitem
ListView.ListItems.Add , , intMax
ListView.ListItems(ListView.ListItems.Count).SubItems(1) = busca
Else
'De lo contrario busco la cadena entrante en el ListView
Set tItem = ListView.FindItem(busca, lvwWhere, 1, lvwFind)
'Si no Existe la ingresa como nuevo item
If tItem Is Nothing Then
MsgBox "Item no encontrado", , "Que onda"
'Se agrega nuevo item
ListView.ListItems.Add , , intMax
ListView.ListItems(ListView.ListItems.Count).SubItems(1) = busca
Else
'De lo contrario ya existe
If ListView.ListItems(ListView.ListItems.Count).SubItems(1) = busca Then
tItem.EnsureVisible 'Lo ubicamos
tItem.Selected = True 'Lo seleccionamos
ListView.SetFocus 'Le damos el foco al ListView
'Me encontraste, asi que Factúrame
MsgBox "Me encontraste, Felicidades", , "Busqueda Finalizada"
Private Sub skcServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Long
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
skcServer(intMax).LocalPort = 0
skcServer(intMax).Accept requestID
DoEvents
Cliente
Private Sub Timer2_Timer()
sckCliente.SendData sckCliente.LocalHostName
Timer2.Enabled = False
End Sub
