como hacer un chat para varios pc's

Iniciado por agutin1983, 15 Septiembre 2005, 15:41 PM

0 Miembros y 1 Visitante están viendo este tema.

scugat

tu puedes ir agregando nuevos sockets a medida que transcurre el programa por cierto el codigo de arriba ta very mal este rula bien. como an dicho solo tienes que krear un array
en form load
ws(0).localport=90 'le asignamos un puerto al primer socket
ws(0).listen 'escuxamos en el primer socket

en conection request

if index=0 then 'comprovamos si es el primer socket para no sumar en el contador
max=0
else
max=max +1 'si no es el primero le sumamos 1 al contador de sockets
end if
ws(index).close 'cerramos el puerto de la peticion
ws(index).accept requestid 'aceptamos la coexion
load ws(index+1) ' cargamos el socket siguiente
ws(index+1).localport= 90 'le asignamos puerto el socket siguiente
ws.(index+1).listen 'escuxamos en el socket siguiente


esto ara que la primera conexion tenga de index 0 la segunda 1 la tercera 2 ....
asi asta 65000 creo que era el tope
asi tu ya tenes varias conexiones facil e ::)
si te fijas cada condicion del winsock trae el index as integer
asi que quando recibas datos tenes que mirar de que conexion
ws(index).getdata datos
i pa enviar a tos simplemente un bucle
for i=0 to max 'ojo no index pk imaginate que el index es 2 del que a enviao el mensaje i ay 2 conexiones por delante
if ws(i).state=7 then 'miramos si ta conectao pk si el 2 se va i no ay sto se jode todo
ws(i).senddata datos 'enviamos datos a cada conexion
end if
next i
NO digas que eres hacker si lamerias haces

MaLkAvIaN_NeT

CitarAceptar más de una solicitud de conexión
El servidor básico comentado anteriormente sólo acepta una solicitud de conexión. No obstante, es posible aceptar varias solicitudes de conexión con el mismo control si crea una matriz de controles. En este caso, no necesita cerrar la conexión; basta con crear una nueva instancia del control (estableciendo la propiedad Index) e invocar el método Accept de la nueva instancia.
El código que se muestra a continuación presupone que existe un control Winsock en un formulario llamado sckServer y que su propiedad Index tiene el valor 0, por lo que el control forma parte de una matriz de controles. En la sección Declaraciones se declara una variable intMax a nivel de módulo. En el evento Load del formulario, intMax tiene establecido el valor 0 y la propiedad LocalPort del primer control de la matriz tiene el valor 1001. Después, se invoca el método Listen en el control, convirtiéndolo en el control "que escucha". A medida que llega cada solicitud de conexión, el código comprueba si el índice es 0 (el valor del control "que escucha"). Si es así, este control aumenta la variable intMax y utiliza ese número para crear una nueva instancia del control. Esta instancia se utiliza para aceptar la solicitud de conexión.
Private intMax As Long

Private Sub Form_Load()
   intMax = 0
   sckServer(0).LocalPort = 1001
   sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
   If Index = 0 Then
      intMax = intMax + 1
      Load sckServer(intMax)
      sckServer(intMax).LocalPort = 0
      sckServer(intMax).Accept requestID
      Load txtData(intMax)
   End If
End Sub
a por las buenas ideas

sch3m4

también cuando se cierre un socket podeis descargarlo... xD

unload Winsock(index)
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

Luk2006

Yo te puedo ayudar y podriamos hacer algo juntos, sé de MSNChats, fui Guide ahi y tengo toda la info que necesitas, es más tengo un servidor arriba http://www.freewebs.com/daleinicio/ con chats oficiales, se puede agregar Admins, Sysops y Guides, vamos a lo nuestro, yo te ayudo si a cambio vos me ayudas con la pagina, osea si sabes algo de php apache mysql y lenguage Java Script podríamos hacer una pagina con chats juntos.

Dame tu opionión.

Atte: Luk
Intel Pentium 4 3.2 - 2GB Ram - 256MB Video - HD1 200GB - HD2 120GB - HD3 80GB - 6 Puertos USB - Placa de Red - Placa de sonido Yamaha de 6 vías - Teclado c/ mause inalámbricos Microsoft - Gabinete tipo Servidor -