Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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.

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 (vb) [Seleccionar]
Private Sub bntSend_Click()
On Error GoTo errorSub

Dim i As Integer
Dim Max As Integer

Max = Winsock1.Bound
    i = 0
    For i = 0 To Max
    If Winsock1(i).State = sckConnected Then
    Winsock1(i).SendData (txtSend)
   
    txtLog = txtLog & i & vbCrLf
   
    End If
    Next
   
    txtLog = txtLog & "Servidor : " & txtSend & vbCrLf
    txtSend = ""

Exit Sub
errorSub:
MsgBox "Error : " & Err.Description
' cierra la conexión
Winsock1_Close (intMax)
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 (vb) [Seleccionar]
Private Sub WS_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim NumSock As Integer
Dim i As Integer
NumElem = WS.UBound
For i = 1 To NumElem
If WS(i).State <> 7 Then
WS(i).Close
WS(i).Accept requestID
Exit Sub
End If
Next
Load WS(NumElem + 1)
NumSock = WS.UBound
WS(NumSock).Accept requestID
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 ;) .