Autor
|
Tema: como hacer un chat para varios pc's (Leído 6,400 veces)
|
agutin1983
Desconectado
Mensajes: 21
|
hola todos!!! estoy tratando de hacer un chat tipo MSN que todos los clientes lo instalen en su pc y yo un servidor que se conecten a mi. ahora bien, solo lo he podido hacer con dos pc,para ello he usado winsock. la mia(servidor) la pongo en "listen", y al cliente le doy mi numero de ip para que se conecte. listo, se establece la conexion(tcp) entre los 2 equipos y se pueden enviar y recibir mensajes. ahora lo que quiero hacer es que haya mas de 2 pc siendo uno el servidor y todas las demas cliente, que c/u me envie mensajes a mi y yo me encargo de enviarle el mensaje a todos. es posible hacer eso con winsock. si quieren el codigo que tengo pidanmelo. escucho ideas.
|
|
|
En línea
|
|
|
|
BeRti
Desconectado
Mensajes: 63
|
eso tiene muy facil solucion, simplemente creas una matriz de controles del socket del servidor para que acepte mas de una solicitud de conexion.
|
|
|
En línea
|
Lo unico mayor que el amor a la libertad es el odio, el odio a kien te la kita!
|
|
|
agutin1983
Desconectado
Mensajes: 21
|
muy buena la idea! seria como poner unos cuantos objetos winsock en el formulario y dejarlos en "listen" hasta que un clientes pida conexion. pero de esta manera ¿solo habria un cupo limitado de conexiones? por ej: si hago una matriz de control de 5 winsock, solo podria establecer conexion con 5 clientes, cuando el 6 quiera conectar no va a poder.
|
|
|
En línea
|
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
Si estableces una variable para el numero de matriz lo solucionas, por ej: Saludos
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
BeRti
Desconectado
Mensajes: 63
|
si, justo como te indica Manibal_man puedes apañarlo perfectamente.
|
|
|
En línea
|
Lo unico mayor que el amor a la libertad es el odio, el odio a kien te la kita!
|
|
|
agutin1983
Desconectado
Mensajes: 21
|
exacto. pero si creo una matriz con 10 elementos por ej. y una variable : for a=1 to 10 winsock(a) next a
mas de 10 conexiones no voy a poder tener. que opinana?
|
|
|
En línea
|
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
pero xq lo vas a limitar a 10?
porque no haces un ciclo con un
a + 1
y listo...
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
BeRti
Desconectado
Mensajes: 63
|
yo de todas formas flipo con la gente, que vaga que es. tanto kuesta mirar este mismo foro? arribita justo pone en un post fijo TUTORIAL WINSOCK, te copio y pego... joder Aceptar 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.
Código: 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
|
|
|
En línea
|
Lo unico mayor que el amor a la libertad es el odio, el odio a kien te la kita!
|
|
|
agutin1983
Desconectado
Mensajes: 21
|
mi duda es: hay que crear la matriz con una cantidad determinada de elementos por ej: winsock(0) hasta winsock(100) o se pueden ir agregando en tiempo de ejecucion?
|
|
|
En línea
|
|
|
|
Manibal_man
Desconectado
Mensajes: 528
|
nop
|
|
|
En línea
|
:: I was born ready motha fucka ::
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
(SOLUCIONADO) como hacer chat entre dos pc?
« 1 2 »
Dudas Generales
|
;c1v!c
|
10
|
14,048
|
18 Febrero 2011, 22:34 pm
por ;c1v!c
|
|
|
hacer usb boteable con varios .iso
Software
|
Sk9ITk5Z
|
6
|
4,628
|
30 Noviembre 2011, 17:03 pm
por Sk9ITk5Z
|
|
|
Hacer que una aplicacion aproveche varios nucleos de la CPU
Programación General
|
crazykenny
|
7
|
8,741
|
11 Diciembre 2011, 11:20 am
por crazykenny
|
|
|
¿como hacer que se muevan el xat o chat de facebook en los costados de una web ?
Desarrollo Web
|
Weeken
|
4
|
3,507
|
3 Octubre 2012, 06:11 am
por Weeken
|
|
|
Como hacer varios div responsive
Desarrollo Web
|
eugeniocol
|
0
|
1,800
|
13 Marzo 2017, 15:19 pm
por eugeniocol
|
|