Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: jebg en 26 Julio 2005, 06:07 am



Título: enviar list por winsock
Publicado por: jebg en 26 Julio 2005, 06:07 am
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


Título: Re: enviar list por winsock
Publicado por: Slasher-K en 26 Julio 2005, 06:31 am
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).

Código:
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.

Código:
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.


Título: Re: enviar list por winsock
Publicado por: jebg en 26 Julio 2005, 06:45 am
hola, voi a poner el codigo (para que vean lo nuevo que soy)  ;)   
Código:
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.


Título: Re: enviar list por winsock
Publicado por: soplo en 26 Julio 2005, 22:08 pm
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
Código:
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