FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Aqui te va el chat para la cantidad de personas que quieras
Ahora este chat es medio primitivo y para una Local NetWork, la verdad esta compuesto por una aplicacion que es el servidor y otra que es el cliente.
Tambien utilizo los componentes ClientSocket y ServerSocket, que si los buscas en el delphi 7 no los vas a encontrar porque este paquete hay que instalarlos. Instalar ClientSocket y ClientServer en delphi 7 1- Abres el delphi, Menú component / install Packages / add Buscan en Archivos de Programas / Borland / Delphi 7/ Bin / dclsockets70.bpl este paquete se instala con ayuda y todo, dentro de la paleta Internet. Entoces a trabajar: Empesemos por la amplicacion cliente: Antes de empesar: las conexiones de red si no me equivoco y si lo hago porfavor rectificar, se conectan por conextion que se llaman socket es como un hilo, y estos salen por los puertos de TCP/Ip que pueden ser cualquiera, necesitamos evitar conectarnos por los puertos estandar como los de htto, ftp, POP de correo, etc, los componetes ClientSocket y ServerSocket tienen una propiedad llamada Port, que este es la que dice por el puerto que se van a hacer las trasnferencias de datos, lo que, el clientsocket y el serversocket tienen que tener en esta propiedad el mismo puerto como el 1050, ejemplo y es el que bamos a utilizar. asi que ponte este numero en la propiedad port del cliente y despues en el del servidor. Insercion de componentes: 1- StatusBar, con la propiedad ALing en Albutton. Paleta Win32. 2- Memo1, con la propiedad alin igual que el statusbar, Paleta Standar. 3- Spliter, con la propiedad alin igual que el statusbar, paleta additional. 4- Memo2, con la propiedad aling AlClient, Paleta Standar. 5- Panel, con a propiedad aling alTop. Agregas una panel a esta barra dando sobre ella doble clic y en el boton add. 6- Label, Propiedad Caption = 'Conectar a: ' 7- Edit1, borras el texo en la propiedad de mismo nombre. 8- Boton, Caption = 'Concetar / Desconectar' 9- Insertas el ClientSocket, paleta Internet. Programacion de Eventos: 1- Genera un evento Onclic para el Boton con el siguiente codigo. if ClientSocket1.Active=true then ClientSocket1.Active := False else begin ClientSocket1.Host := Edit1.Text; ClientSocket1.Active := True; end; Nota: aqui el boton pregunta si el cliente esta activado, es decir en busqueda de servidores y conectados a ellos, si lo esta lo desactiva y si esta dasactivado le dice a que maquina se va a conectar y lo activa para que se conecte. 2- Genera un Evento KeyDown Para el memo1 con el codigo. if Key = VK_Return then ClientSocket1.Socket.SendText(Memo1.Lines[Memo1.Lines.Count-1]); Nota: bueno esta linea esta casi que en spanish solo que, el cliente tiene una metodo que se llama socket este trabaja directo sobre la conexion establesida por el cliente y el servidor, por esta se pueden recivir datos y mandar datos como senttext()3- Genera un evento para el ClientSocketRed con el codigo Memo2.Lines.Add(Socket.ReceiveText); este recibe el texto que manda el server. Ahora bamos a general codigo para el estado de la conexcion. 4- Genera evento para ClientSocket1Connect con el codigo StatusBar1.Panels[0].Text :='Me conecte a '+ClientSocket1.Host; nos informa a que maquina se conecto. 4- evento para el ClientSocket1Disconnect con el codigo StatusBar1.Panels[0].Text :='Me desconecte'; informa cuando se ha desconectado 5- evento para ClientSocket1Error con el codigo StatusBar1.Panels[0].Text :='No me puedo conectar con '+ClientSocket1.Host; ErrorCode := 0; informa cuando no se puede conectar al servidor. Bueno hasta aqui con el cliente. Programacion del Servidor: Nota: agraga los mismos componentes y sus propiedades en la aplicacion servidor solo que esta vez con el componete serversocket y sin el edit, y el boton con el captio = activar / dasactivar. REcuerda la propiedad port. del serversocket Programacion de eventos: 1- Genera evento para el onclic del boton con el codigo If ServerSocket1.Active = true then begin ServerSocket1.Active := false; StatusBar1.Panels[0].Text:='Desactivado el Servidor'; end Else Begin serverSocket1.Active:=true; StatusBar1.Panels[0].Text:='Activado el Servidor'; end; esto dasactiva el server si esta acitvado y lo informa al statusbar y biseversa. Activar, esto hace que le server este a la escucha de peticiones de los clientes para que pudan conectarce. 2- Genera un evento para el Memo1 keydonw con el codigo [i] Var i:Integer; begin If (key = vk_return) and (ServerSocket1.Socket.Connected=true) then Begin for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do serverSocket1.Socket.Connections.SendText(Memo1.Lines[Memo1.Lines.Count-1]); Memo2.Lines.Add(Memo1.Lines[Memo1.Lines.count-1]); end; esto envia el texto escrito a todos los clientes que esten conectado a server y se lo manda a el mismo para que sea visualizado en la conversacion. 3- genera un evento para ServerSocket1 sobre ClientRead con el codigo [i] Var i:Integer; Texto:string; begin Texto:=Socket.ReceiveText; Memo2.Lines.Add(texto); for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do ServerSocket1.Socket.Connections.SendText(Texto); esto captura el mensaje enviado por un cliente, lo muestra en pantalla en el server y lo manda para todos los clientes para haci seguir en la conversacion. [i]ServerSocket1.Socket.Connections esto accede a todos los clientes que tiene el server, porque recuerda que tiene que conectar a muchas personas. ServerSocket1.Socket.ActiveConnections-1 meda la cantidad de clientes que hay conectados, empesando por el primero que tiene el indise 0. -- general codigo para controlar el estado de la conexion. 4- genral evento para ServerSocket1 en el evento ClientConnect StatusBar1.Panels[0].Text:='Se ha conectado '+ServerSocket1.Socket.LocalHost; 5- general evento para ServerSocket1 sobre ClientDisconnect con el codigo StatusBar1.Panels[0].Text:='Se ha desconectado '+ServerSocket1.Socket.LocalHost; 6- general evento para ServerSocket1 sobre Listen StatusBar1.Panels.Items[0].Text := 'Escuchando...'; bueno esto es todo lo que tengo que decirles, al que le sirva que lo pruebe y si no le sale algo y usted no lo pueda solucional o este yo equivocado o conosta usted una manera mejor porfavor de mostramela me dirrecion es leonel06033@cfg.jovenclub.cu espero que todo este bien saludos. |
#2
|
||||
|
||||
No entendi este pedazo en el chat
5- Panel, con a propiedad aling alTop. Agregas una panel a esta barra dando sobre ella doble clic y en el boton add.
no lo entendi, me lo puedes explicar.. mil gracias |
#3
|
|||
|
|||
Aclaracion del tema 5- agregar un panel
mira amigo me confundi, disculpen, mira solo es agregar el panel y aliniarlo a altop, toda la parte de arriba de la form.
donde hay que agregar un panel nuevo es en el statusbar1, que en este se la da doble clic sobre el, sale una ventana y en esta hay una boton que se llama add, presionas sobre este y se agrega una nueva area donde se puede escribir que en esta es donde se pueden motrar los texto de notificaciones, o sino clikeas en el objet inspector en la propiedas panels.. esta propiedad es del statusbar1. saludos y disculpen las molestias. |
#4
|
||||
|
||||
No me funciono el chat
Hola, aunque ya escribi al correo que dejaste, nuevamente lo digo por este medio, eme esta mostrando errores en el servidor, proble el cliente y funciona perfecto, pero no puedo probar hasta que el servidor este bien, y gracias por la respuesta a mi pregunta. muy gentil.
maury manosalva |
#5
|
|||
|
|||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Chat Delphi | Caral | Varios | 0 | 07-09-2006 20:42:38 |
Un chat de voz en delphi? | neto57 | Varios | 7 | 26-05-2006 18:44:55 |
Necesito un chat de voz en delphi | neto57 | Internet | 1 | 25-05-2006 16:19:28 |
Chat en delphi ??? | android_beat | Varios | 2 | 12-04-2005 00:43:37 |
Chat Web / Delphi | cone220 | Internet | 3 | 05-09-2003 01:06:10 |
|