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.
Tu puedes hacer lo siguiente creo !
-Cliente -Cliente
Tu (Servidor)-
-Cliente
-Cliente
y muchas mas.
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)
mirate esto
http://www.monografias.com/trabajos30/tutorial-visual-basic/tutorial-visual-basic.shtml
Te lo explican muy bien
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
Si he mirado en lo de monografias y no me va lo tengo puesto asi:
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...
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
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
No uses el puerto 123, es de windows....
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)
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.
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 ;) .