![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y montarlo sobre paquetes ip para transmitirlo a un terminal concreto. Todo bajo el lenguaje V.B. por supuesto. Gracias de antemano y un saludo. |
| | ||||
| ||||
| |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Presupongo que acerca del control winsock no tienes problemas (es muy sencillo de usar tanto para TCP como para UDP). Si usas TCP el problema lo tienes resuelto ya que puedes enviar directamente un archivo si lo cargas previamente en memoria (no te lo recomiendo por no sobre cargar la memoria del PC cuando quieras enviar archivos muy grandes). Cuando uses TCP puedes ir cargando por ejemplo de 1024 en 1024 bytes en memoria e irlos enviando poco a poco conforme se envíen los anteriores paquetes (el control winsock te generará un evento cada vez que tenga el buffer "libre" para enviar más datos). Si usas UDP debes programarte tu propio control de flujo. Por supuesto usando TCP las cosas serán mucho más sencillas ya que el sistema operativo se encarga del control de flujo, recuperación de errores, paquetes perdidos, etc... Dame un tiempo que me instale de nuevo el VB y te echaré cables más precisos ![]() Hasta pronto. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Presupongo que acerca del control winsock no tienes problemas (es muy sencillo de usar tanto para TCP como para UDP). Si usas TCP el problema lo tienes resuelto ya que puedes enviar directamente un archivo si lo cargas previamente en memoria (no te lo recomiendo por no sobre cargar la memoria del PC cuando quieras enviar archivos muy grandes). Cuando uses TCP puedes ir cargando por ejemplo de 1024 en 1024 bytes en memoria e irlos enviando poco a poco conforme se envíen los anteriores paquetes (el control winsock te generará un evento cada vez que tenga el buffer "libre" para enviar más datos). Si usas UDP debes programarte tu propio control de flujo. Por supuesto usando TCP las cosas serán mucho más sencillas ya que el sistema operativo se encarga del control de flujo, recuperación de errores, paquetes perdidos, etc... Dame un tiempo que me instale de nuevo el VB y te echaré cables más precisos ![]() Hasta pronto. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Presupongo que acerca del control winsock no tienes problemas (es muy sencillo de usar tanto para TCP como para UDP). Si usas TCP el problema lo tienes resuelto ya que puedes enviar directamente un archivo si lo cargas previamente en memoria (no te lo recomiendo por no sobre cargar la memoria del PC cuando quieras enviar archivos muy grandes). Cuando uses TCP puedes ir cargando por ejemplo de 1024 en 1024 bytes en memoria e irlos enviando poco a poco conforme se envíen los anteriores paquetes (el control winsock te generará un evento cada vez que tenga el buffer "libre" para enviar más datos). Si usas UDP debes programarte tu propio control de flujo. Por supuesto usando TCP las cosas serán mucho más sencillas ya que el sistema operativo se encarga del control de flujo, recuperación de errores, paquetes perdidos, etc... Dame un tiempo que me instale de nuevo el VB y te echaré cables más precisos ![]() Hasta pronto. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Presupongo que acerca del control winsock no tienes problemas (es muy sencillo de usar tanto para TCP como para UDP). Si usas TCP el problema lo tienes resuelto ya que puedes enviar directamente un archivo si lo cargas previamente en memoria (no te lo recomiendo por no sobre cargar la memoria del PC cuando quieras enviar archivos muy grandes). Cuando uses TCP puedes ir cargando por ejemplo de 1024 en 1024 bytes en memoria e irlos enviando poco a poco conforme se envíen los anteriores paquetes (el control winsock te generará un evento cada vez que tenga el buffer "libre" para enviar más datos). Si usas UDP debes programarte tu propio control de flujo. Por supuesto usando TCP las cosas serán mucho más sencillas ya que el sistema operativo se encarga del control de flujo, recuperación de errores, paquetes perdidos, etc... Dame un tiempo que me instale de nuevo el VB y te echaré cables más precisos ![]() Hasta pronto. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Presupongo que acerca del control winsock no tienes problemas (es muy sencillo de usar tanto para TCP como para UDP). Si usas TCP el problema lo tienes resuelto ya que puedes enviar directamente un archivo si lo cargas previamente en memoria (no te lo recomiendo por no sobre cargar la memoria del PC cuando quieras enviar archivos muy grandes). Cuando uses TCP puedes ir cargando por ejemplo de 1024 en 1024 bytes en memoria e irlos enviando poco a poco conforme se envíen los anteriores paquetes (el control winsock te generará un evento cada vez que tenga el buffer "libre" para enviar más datos). Si usas UDP debes programarte tu propio control de flujo. Por supuesto usando TCP las cosas serán mucho más sencillas ya que el sistema operativo se encarga del control de flujo, recuperación de errores, paquetes perdidos, etc... Dame un tiempo que me instale de nuevo el VB y te echaré cables más precisos ![]() Hasta pronto. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Presupongo que acerca del control winsock no tienes problemas (es muy sencillo de usar tanto para TCP como para UDP). Si usas TCP el problema lo tienes resuelto ya que puedes enviar directamente un archivo si lo cargas previamente en memoria (no te lo recomiendo por no sobre cargar la memoria del PC cuando quieras enviar archivos muy grandes). Cuando uses TCP puedes ir cargando por ejemplo de 1024 en 1024 bytes en memoria e irlos enviando poco a poco conforme se envíen los anteriores paquetes (el control winsock te generará un evento cada vez que tenga el buffer "libre" para enviar más datos). Si usas UDP debes programarte tu propio control de flujo. Por supuesto usando TCP las cosas serán mucho más sencillas ya que el sistema operativo se encarga del control de flujo, recuperación de errores, paquetes perdidos, etc... Dame un tiempo que me instale de nuevo el VB y te echaré cables más precisos ![]() Hasta pronto. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Yo declararía el archivo como global: Dim fhdFuente As Integer Y tras pulsar un botón o tras seleccionar mediante cualquier "Common Dialog" un archivo abrimos el archivo en modo binario: fhdFuente = FreeFile Open Archivo As For Binary As #fhdFuente Preparamos el socket y nos conectamos a la máquina remota: wsCliente.Protocol = sckTCPProtocol wsCliente.RemoteHost = "ip.o.direccion.del.equipo.remoto" wsCliente.RemotePort = 12345 ' (ojo que "parece" netbus ![]() wsCliente.Connect Tras eso recibiremos el evento de conexión (Connect) en el que llamaremos a la función enviar_un_trocito: Private Sub enviar_un_trocito() Dim trocito As String * 1024 Get #n,, trocito wsCliente.SendData trocito End Sub Con esto estamos leyendo solo 1024 bytes del archivo y enviandolos a través del socket. Tras terminar el envío de estos datos se generará un evento "SendComplete" al que debes responder volviendo a enviar otro trocito. ¿Cuando parar? Cuando no queden más datos en el arcihvo. Para eso te recomiendo que en "enviar_un_trocito" hagas una comprobación "eof" al archivo abierto y solo leas y envíes en caso de no haber llegado al final. En caso contrario lo normal es dar por terminada la transferencia. Cerrar el archivo y cerrar el socket. En el lado del cliente la cosa es aún más sencilla. Trata de leerte el manual de uso del control Winsock para ver si eres capaz de implementarlo por tí mismo. Si tienes problemas no dudes en ponerte de nuevo en contacto con nosotros. >Gracias de antemano y un saludo. De nada. P.D.: Este hilo viene desde es.comp.os.linux.redes ![]() -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |
| |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Yo declararía el archivo como global: Dim fhdFuente As Integer Y tras pulsar un botón o tras seleccionar mediante cualquier "Common Dialog" un archivo abrimos el archivo en modo binario: fhdFuente = FreeFile Open Archivo As For Binary As #fhdFuente Preparamos el socket y nos conectamos a la máquina remota: wsCliente.Protocol = sckTCPProtocol wsCliente.RemoteHost = "ip.o.direccion.del.equipo.remoto" wsCliente.RemotePort = 12345 ' (ojo que "parece" netbus ![]() wsCliente.Connect Tras eso recibiremos el evento de conexión (Connect) en el que llamaremos a la función enviar_un_trocito: Private Sub enviar_un_trocito() Dim trocito As String * 1024 Get #n,, trocito wsCliente.SendData trocito End Sub Con esto estamos leyendo solo 1024 bytes del archivo y enviandolos a través del socket. Tras terminar el envío de estos datos se generará un evento "SendComplete" al que debes responder volviendo a enviar otro trocito. ¿Cuando parar? Cuando no queden más datos en el arcihvo. Para eso te recomiendo que en "enviar_un_trocito" hagas una comprobación "eof" al archivo abierto y solo leas y envíes en caso de no haber llegado al final. En caso contrario lo normal es dar por terminada la transferencia. Cerrar el archivo y cerrar el socket. En el lado del cliente la cosa es aún más sencilla. Trata de leerte el manual de uso del control Winsock para ver si eres capaz de implementarlo por tí mismo. Si tienes problemas no dudes en ponerte de nuevo en contacto con nosotros. >Gracias de antemano y un saludo. De nada. P.D.: Este hilo viene desde es.comp.os.linux.redes ![]() -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 18 Jul 2005 06:06:37 -0700, "Darkblade" <frjadufe***hotmail.com> escribió: >Hola, me podriais hechar una mano, mi objetivo es trocear un fichero y >montarlo sobre paquetes ip para transmitirlo a un terminal concreto. >Todo bajo el lenguaje V.B. por supuesto. Yo declararía el archivo como global: Dim fhdFuente As Integer Y tras pulsar un botón o tras seleccionar mediante cualquier "Common Dialog" un archivo abrimos el archivo en modo binario: fhdFuente = FreeFile Open Archivo As For Binary As #fhdFuente Preparamos el socket y nos conectamos a la máquina remota: wsCliente.Protocol = sckTCPProtocol wsCliente.RemoteHost = "ip.o.direccion.del.equipo.remoto" wsCliente.RemotePort = 12345 ' (ojo que "parece" netbus ![]() wsCliente.Connect Tras eso recibiremos el evento de conexión (Connect) en el que llamaremos a la función enviar_un_trocito: Private Sub enviar_un_trocito() Dim trocito As String * 1024 Get #n,, trocito wsCliente.SendData trocito End Sub Con esto estamos leyendo solo 1024 bytes del archivo y enviandolos a través del socket. Tras terminar el envío de estos datos se generará un evento "SendComplete" al que debes responder volviendo a enviar otro trocito. ¿Cuando parar? Cuando no queden más datos en el arcihvo. Para eso te recomiendo que en "enviar_un_trocito" hagas una comprobación "eof" al archivo abierto y solo leas y envíes en caso de no haber llegado al final. En caso contrario lo normal es dar por terminada la transferencia. Cerrar el archivo y cerrar el socket. En el lado del cliente la cosa es aún más sencilla. Trata de leerte el manual de uso del control Winsock para ver si eres capaz de implementarlo por tí mismo. Si tienes problemas no dudes en ponerte de nuevo en contacto con nosotros. >Gracias de antemano y un saludo. De nada. P.D.: Este hilo viene desde es.comp.os.linux.redes ![]() -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| empaquetar software con base de datos MDB | Martín | Newsgroup microsoft.public.es.vb | 4 | 09-05-2008 08:54:38 |
| Empaquetar soft con bd | Martín | Newsgroup microsoft.public.es.vb | 4 | 05-05-2008 23:00:10 |
| Transferencia de paquetes | sebacibertico@gmail.com | Newsgroup es.comp.redes.adsl | 0 | 05-12-2007 19:41:55 |
| Paquetes msi | Walter | Newsgroup microsoft.public.es.win2000 | 1 | 25-09-2007 10:15:39 |
| Instalación de paquetes deb | Xavi | Newsgroup es.comp.os.linux.misc | 24 | 26-12-2006 09:08:37 |