FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Explicación uso TCPServer, TCPCLient, UDPClient, UDPServer ¿para qué sirven??
Hola compañeros del foro, quisiera si alguien tiene tiempo y desea compartir sus conocimientos que me explicara el uso, funcionamiento y en que casos se usan los componentes Indy TCPServer, TCPClient, UDPServer, UDPClient por favor.
Sé que algunos me contestarán que busque en google o en la documentación de Indy, pero quisiera una explicación más amena y menos árida que la que dan en otros sitios. Desde ya muchas gracias.
__________________
Herr Heins Faust |
#2
|
|||
|
|||
Buenas el uso es variado, yo por ejemplo uso los componentes UDPClient y UDPServer, para comunicarme con mi centralita por medios de sockets UDP que son los que usan por defecto mi centralita.
Los TCP los uso para un chat interno, puedes enviar ficheros, etc... La idea de estos componentes es la comunicación entre una parte servidora y una cliente, los TCP te aseguran la conexión y la integridad de la comunicacion mientras que los UDP no te la aseguran. Además permite broadcast para enviar paquetes a toda una red. Espero haberte aclarado algo. Saludos. |
#3
|
||||
|
||||
Gracias por la explicación Rockin...
Ahora me surgen algunas dudas. Necesito tranferir archivos desde varias PC's conectadas a internet a mi servidor, por alguna razón en mi trabajo no quieren que sea por medio de ftp... asi que: ¿podría utilizar TCPServer y TCPClient? ¿TCPServer estaría en el servidor con IP fija en mi oficina y TCPClient en cada una de las PC's que le enviarán los archivos a TCPServer en mi oficina? Si las respuestas a mis preguntas anteriores son si... entonces ¿La PC de mi ofinina sería el server de las PC's fuera de mi oficina que serían las client? Gracias de antemano y disculpen que sea tan preguntón.
__________________
Herr Heins Faust |
#4
|
|||
|
|||
No se cual es la razon por la que no quieren que sea por FTP, pregunta si puedes hacerlo por SFTP, es una tonteria tener que programar esto cuando hay muchismo software gratuito para ello.
Podrias usar TCPClient y TCPServer para mandar ficheros. me parece que era con el metodo TCPClient.WriteFile o algo así. Busca por los foros o en google. Saludos. |
#5
|
||||
|
||||
Creo que la idea de tu empresa es que los enlaces no sean públicos. Es decir estilo VPN.
En mi caso cree hace algunos años una VPN y me puedo conectar con cualquier PC utilizando la RED de Internet pero sin ser visible a nivel público. Para esto te será muy útil los TCP de indy. Que sepas que el que actua como server lo hace en multiproceso o multi-hilo. Solo tienes que crear en el TCPServer (añadir) instrucciones. Lo recomendable de entrada es que al realizar la acción connect envies un password que te autentifique en el servidor (Que tenga almenos 200 carácteres encriptados) eso evita cualquier hacker al azar. Si lo que quieres es enviar solo ficheros no te compliques con los indy y utiliza TSock u otro objeto que ya los hay y que implementan correctamente esa situación. Saludos
__________________
www.sintecsl.es |
#6
|
||||
|
||||
Cita:
Ya empecé algo y si tengo alguna duda paso por acá... ¿cómo está lo de el password al connect y la encriptación? ¿tienes algún enlace a algún ejemplo o puedes proporcionármelo? Gracias de antemano amigos
__________________
Herr Heins Faust |
#7
|
||||
|
||||
Password y encriptación
Por internet ya existe muchos ejemplo prácticos e ilustrativos. Busca en google entrelazando las dos palabras y delphi y seguro que encuentras miles de enlaces en tu idioma.
Por otro lado si dominas lo indy u otro VCL, pues es fácil. Existe la instrucción OnConnect en el IdServer, yo tengo esto : A parte de esto determino el tamaño de buffer etc, para optimizar los envíos y recepciones. Te pongo lo que tengo en el IdCliente al intentar conectar. Piensa que hay muchas llamadas a otros procedimientos que no bienen al caso. En negrita te dejo lo que te interesa.
__________________
www.sintecsl.es Última edición por nlsgarcia fecha: 15-07-2015 a las 23:21:40. Razón: Sintaxis Delphi |
#8
|
||||
|
||||
Muy ilustrativo amigo Sintecsl...
Me gustó mucho tu ejemplo, me ha aclarado algunas cosas, solo algunas preguntas... en cuanto al tamaño del buffer para el envío y recepción ¿te refieres a la propiedad RecvBufferSize y SendBufferSize del client? ¿el server tiene alguna parecida o se ajusta al client?, ¿este tamaño puede ser modificado una vez que se ha conectado el cliente? Bueno... creo que ya he dado mucha lata. Por último, veo que eres nuevo en el club y sería bueno que cooperaras más seguido con nosotros y también a nombre del club te ofrezco el apoyo de los demás compañeros . Gracias de antemano y buen inicio de semana.
__________________
Herr Heins Faust |
#9
|
||||
|
||||
Cita:
A tu pregunta el buffer, la respuesta es que si se puede manipular tanto en el cliente (lo mas facil) como en el server. En la propiedad del buffer cuando te pasa la variable el cliente se establece para dicha conexión esa variable de forma automática en Indy. En el server si quieres cambiar ese buffer puedes poner una instrucción o comando : Esto es útil porque en mi caso envío/recepciono de forma comprimida ficheros. Y establezco la compresión al conectar con esta instrucción : Lo cual me permite ajustar el ancho de banda de conexión. Por otro lado, en el envío/recepción de ficheros determino el buffer a la mitad del que tiene cada conexión (el buffer está guardado en cada variable tipo hilo (ASender)). Esto es motivo para evitar desbordamientos en ficheros muy comprimidos y que superan el tamaño original, lo cual te daría errores insalvables. Como ejemplo un boton : EL CLIENTE : EL SERVER (solo es la copia desde el cliente al server) : Como verás cada conexión tiene su propio buffer pero que lo que importa es como se gestiona. Ya sé que hay parámetros que no entenderás o que no están documentados pero pertenecen a mi programa y son muy extensos de explicar y de documentar.... Espero que te sea ilustrativo lo anteriormente mencionado. No soy programador. Solo ingeniero. Por lo que esto para mí es una aficción útil pero nada mas. Saludos a todos.
__________________
www.sintecsl.es Última edición por nlsgarcia fecha: 15-07-2015 a las 23:24:28. Razón: Sintaxis Delphi |
#10
|
||||
|
||||
En efecto, muy ilustrativo y muy útil ...
Te tomas muy en serio tu hobby, pues se nota que eres muy bueno... Estoy programando utilizando tus ejemplosy adecuándolos a mis necesidades. Muchas gracias amigo y date una vuelta por otras secciones del foro donde serás bienvenido
__________________
Herr Heins Faust |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TcpClient, TCPServer e Hilos | Joacko | Internet | 3 | 27-09-2010 19:04:56 |
TcpClient y TcpServer | Caro | OOP | 2 | 01-10-2008 19:32:34 |
Glyphs para Botones, sirven los ICO para esto ? | mtpedro | Gráficos | 8 | 01-02-2006 09:54:59 |
tcpserver y tcpclient | ajgesino | Internet | 2 | 23-01-2005 19:16:35 |
Manejo de TCPClient y TcpServer de las indy? | Pally | Internet | 1 | 04-08-2003 15:11:08 |
|