enviar list por winsock

Iniciado por jebg, 26 Julio 2005, 06:07 AM

0 Miembros y 1 Visitante están viendo este tema.

jebg

hola, no se como exponer mi duda pero estoy haciendo un programa para el msn, una de las funciones es pasar la lista de contactos de computadora a computadora pero no se como mandar una lista por winsock
no creo que haya un fallo en lo demas porque si puedo intercambiar texto

Slasher-K

Si podes intercambiar texto entonces es sencillo. Suponiendo que tenes la lista de contactos en un ListBox, creas una cadena con todas los contactos, delimitado por algun caracter, vamos a suponer que es Chr$(1).


Function MakeStrFromList(ListSpec As ListBox) As String
         Dim sData$, i%

  For i = 0 To ListSpec.ListCount-1
    sData = sData & ListSpec.List(i) & Chr$(1)
  next

  MakeStrFromList = sData
End Function


Luego envias la cadena y cuando llega a destino usas Split para obtener los elementos, y luego los volves a agregar a otra lista.


Sub StrToList(StrSpec As String)
        Dim sItems$(), i%

  sItems = Split(StrSpec, Chr$(1))

  For i = LBound(sItems) To UBound(sItems)
    Call lstContactos.AddItem(sItems(i))
  Next
End Sub


Es solamente una idea, pero es lo mas sencillo. Tambien se podria crear una estructura de datos con mas informacion, pero esto es solo para ejemplificar.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

jebg

hola, voi a poner el codigo (para que vean lo nuevo que soy)  ;)   Private Sub Timer1_Timer()
nick = nicklabel.Caption


If Winsock1.State = sckConnected Then Winsock1.SendData nick
If Winsock1.State = sckConnected Then Winsock1.SendData List1
If Winsock1.State = sckConnected Then Winsock1.SendData List2
If Winsock1.State = sckConnected Then Winsock1.SendData List3
If Winsock1.State = sckConnected Then Winsock1.SendData List4

End Sub
lo unico que se envia y se recepciona correctamente es el packete nick y los demas no.

soplo

A ver

En el buen ejemplo que te ha puesto Anhur lo único que tienes que enviar es sData. Para ello él ha usado una función que llena sData con los valores de listSpec.

Luego cuando recibas haces la función StrToList con el valor recibido que contiene todos los valores del list)

Y nada mas.

Y si quieres enviar también el nick puedes meterlo también en sData antes de enviarlo de la siguiente forma
sData=nick & chr(1) & sData

Y cuando recibas sabes que el primer elemento del array es el nick y los demás el list.

Un saludo
Callar es asentir ¡No te dejes llevar!