Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Shrick en 26 Octubre 2008, 12:52 pm



Título: Winsock conexiones multiples ¿como?
Publicado por: Shrick en 26 Octubre 2008, 12:52 pm
Buenas tras ver algo de python y traducir alguna que otra aplicación de vb a python, me gustaría profundizar un poco más en vb, para luego trasladar lo aprendido a gambas.

Según he leído en el formulario, puedes meter un componente socket denominado Winsock o similar, que me permite conectarme con otro ordenador a través de Internet, luego también me pareció leer que solo se puede realizar una conexión por componente winsock.

Quiero saber si es posible a través de un winsock para hacer múltiples conexiones.

Espero que se me entienda.


Título: Re: Componentes sockets variables ¿como?
Publicado por: & eDu & en 26 Octubre 2008, 13:04 pm
Tu puedes hacer lo siguiente creo !

                   -Cliente    -Cliente
Tu (Servidor)-
                   -Cliente
                              -Cliente
y muchas mas.


Título: Re: Componentes sockets variables ¿como?
Publicado por: Shrick en 26 Octubre 2008, 15:39 pm
Consegui algo haciendo y array/matriz de Winsocket mirando por hay, ahora tengo el problema, para enviar mensaje desde servidor a clientes.

Código:
Private Sub bntSend_Click()
On Error GoTo errorSub

Dim i As Integer

    i = 0
    While (i < intMax)
    Winsock1(i).SendData txtSend
   
    txtLog = txtLog & "Servidor : " & txtSend & vbCrLf
    txtSend = ""
   
    i = i + 1
   
    Wend

Exit Sub
errorSub:
MsgBox "Error : " & Err.Description
' cierra la conexión
Winsock1_Close (intMax)
End Sub

El code lo pille de recursosvb y lo del uso de array winsocket mirando en google.

El error es que necesito saber como se envia mensaje de servidor a clientes.

IMAGEN:

(http://img394.imageshack.us/img394/5364/muestrasdazw0.th.jpg) (http://img394.imageshack.us/my.php?image=muestrasdazw0.jpg)(http://img394.imageshack.us/images/thpix.gif) (http://g.imageshack.us/thpix.php)


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: peib0l en 26 Octubre 2008, 17:20 pm
mirate esto

http://www.monografias.com/trabajos30/tutorial-visual-basic/tutorial-visual-basic.shtml


Te lo explican muy bien


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: vivachapas en 26 Octubre 2008, 19:14 pm
mmm si buscaras en google "conexion multiple winsock vb" ya salen ejemplos... luego si no los entienden te los puedo explicar....
es sencillo cada winscok realiza solo una conexion
para tener multiples creas un array... osea.. muchos winsocks x asi decirlo
para saber q mandarle a cada servidor lo q haces es:

Winsock1(index).senddata "lo q quieras"

donde index es el numero de array del winsock q deseas usar :P


SALUDOS


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: Shrick en 26 Octubre 2008, 19:31 pm
Si he mirado en lo de monografias y no me va lo tengo puesto asi:

Código
  1. Private Sub bntSend_Click()
  2. On Error GoTo errorSub
  3.  
  4. Dim i As Integer
  5. Dim Max As Integer
  6.  
  7. Max = Winsock1.Bound
  8.    i = 0
  9.    For i = 0 To Max
  10.    If Winsock1(i).State = sckConnected Then
  11.    Winsock1(i).SendData (txtSend)
  12.  
  13.    txtLog = txtLog & i & vbCrLf
  14.  
  15.    End If
  16.    Next
  17.  
  18.    txtLog = txtLog & "Servidor : " & txtSend & vbCrLf
  19.    txtSend = ""
  20.  
  21. Exit Sub
  22. errorSub:
  23. MsgBox "Error : " & Err.Description
  24. ' cierra la conexión
  25. Winsock1_Close (intMax)
  26. End Sub

En Teoria deberia funcionar pero solo envia información al segundo cliente...


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: vivachapas en 27 Octubre 2008, 00:25 am
mira, asi lo hago yo:

fijate q vas a tener q cambiar el nombre del Winsock1 a WS, tb tenes q poner la propiedad Array en valor 0

Código
  1. Private Sub WS_ConnectionRequest(Index As Integer, ByVal requestID As Long)
  2. Dim NumSock As Integer
  3. Dim i As Integer
  4. NumElem = WS.UBound
  5. For i = 1 To NumElem
  6. If WS(i).State <> 7 Then
  7. WS(i).Close
  8. WS(i).Accept requestID
  9. Exit Sub
  10. End If
  11. Next
  12. Load WS(NumElem + 1)
  13. NumSock = WS.UBound
  14. WS(NumSock).Accept requestID
  15. End Sub

proba y avisame


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: APOKLIPTICO en 27 Octubre 2008, 00:42 am
No uses el puerto 123, es de windows....


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: Angeldj27 en 27 Octubre 2008, 23:28 pm
Creo que Karcrack posteo un codigo basico de multiconexiones con Winsock solo tienes que buscar por el Foro

Edit:  Es Aky Escusame (http://foro.fire-software.net/index.php?topic=847.0)


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: juancho77 en 28 Octubre 2008, 02:53 am
Porque no pruebas a usar CSocketMaster y CSocketPlus.
Son objetos que emulan un control Winsock, permitiendo, entre otras cosas que el programa no dependa de los controles mencionados instalados en la PC y ademas ofrece un manejo mucho mas simple para crear y distribuir arrays de este componente.
La web es http://www.geocities.com/anshoku/index.html

Tiene unos tutoriales por ahi tambien. Los comandos son los mismos CASI que para el Winsock.


Título: Re: Winsock conexiones multiples ¿como?
Publicado por: Shrick en 28 Octubre 2008, 13:53 pm
Se me ocurre la idea de hacer retrasar las transmisiones por que creo que no me deja por eso.

En cuanto CSocketMaster y CSocketPlus, le hechare un vistazo ;) .