¿Más de una conexión con Winsock?

Yagorat
23 de Enero del 2003
Buenas, haciendo los diversos ejemplos que he encontrado sobre el control Winsock me ha venido una duda, ¿Puede haber un programa servidor en un ordenador, y desde otros 2 ordenadores conectar con este servidor? Mis intentos de momento no lo han conseguido, y creo entender que la conexión va a se de un ordenador a otro, pero sin poder meterse un tercer ordenador por medio.

Si alguin me lo pudiera aclarar se lo agradecería.

cogoyo
23 de Enero del 2003
Estimado, alguna vez trate de hacer lo mismo que tu, buscaba y buscaba y nada...
Pero presionando la neurona que tengo surgio la solucion, esta es:
///******* LA PALTA !!!!!!!!(idea) **********////
en el servidor:
_tenemos un socket exclusivo para escuchar nuestras peticiones de conexion
_paralelo a lo anterior,tenemos un array de soquetes (control winsock).
_Cuando se produce el evento ConnectionRequest, en el soquete que 'solo escucha' peticiones, creamos un nuevo soquete y lo conectamos con nuestro nuevo cliente!!!!
_ lo otro es establecer conexion entre cliente/servidor -que es archiconocido-
----vamos a terreno: -termino campestre- ---
**PRIMERO:
Citare algunos detalles antes de comenzar
** Crearemos un array de controles en tiempo de Ejecucion:
'Supongamos el nombre del control es soquete (de tipo winsock)
'luego en las prop. de soquete ponemos index=0 (i.e. quedaria soquete(0), que corresponde al elemento 0 de nuestro arreglo )
'veamos
'***********************
'tenemos un contador
id_puerto = id_puerto+1
Load Soquete(Id_puerto) 'se crea control en tiempo de ejec.

'*ahora el codigo del soquete que solo escucha, cuando se produce el evento de peticion de conexion:
'soquete que "solo escucha" es 'Escucha'
'''%%%%%%%%% EN EL SERVIDOR
Private Sub Escucha_ConnectionRequest(ByVal requestID As Long)
Dim i As Integer
'soquete Escucha.LocalPort =5000
'soquete(0) esta creado en diseño

'///******* creamos nuevo soquete, p' la proxima conexion********
Id_puerto = Id_puerto + 1
Puerto_Local = Puerto_Local + 1 'nuevo puerto
Load Soquete(Id_puerto) 'nuevo soquete
Fprincipal.Soquete(Id_puerto).Close
Fprincipal.Soquete(Id_puerto).LocalPort = 5000 ' o cualquier otro 6000, 7457, etc
Fprincipal.Soquete(Id_puerto).RemoteHost = ""
Fprincipal.Soquete(Id_puerto).RemotePort = 0

''/**** esperando la conexion y la realizamos
Fprincipal.Soquete(Id_puerto).Bind Puerto_Local
Fprincipal.Soquete(Id_puerto).Listen
Fprincipal.Soquete(Id_puerto - 1).Close

'//////// conexion realizada --con el soquete preparado anteriormente--
Fprincipal.Soquete(Id_puerto - 1).Accept requestID
'//************ se ha realizado nueva conexionn *****
End Sub
'--------------------------------
'**** EL codigo del cliente:
'Ip= 666.666.64.64.64.64.666 o la que sea
cliente.LocalPort = 0
cliente.RemoteHost = Ip 'ip del servidor que te vas a conectar'
cliente.RemotePort = 5000 ' o el que sea
cliente.Connect


'*/*# Personalmente me sirvio p' hacer un chat, a ver si ti tbm -o lo que quieras hacer ***
' Es super palta ese contrlol podis hacer caletas de weas. Alguna duda solo escribe... CuideSEL