FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#6
|
|||
|
|||
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. |
|
|
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 |
|