border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 12-01-2008, 23:19:25
Junior Member
Site Admin
 
Registrado: ene 2008
Posts: 9
mastersound Valoración +2
Predeterminado servidor tftp (no ftp)

saludos a todos, alguien sabe como hay que hacer el encabezado del protocolo t.f.t.p. (trivial file transfer protocol)? necesto enviar una archivo en modo octeto de 220kb y por mucho que busco no encuentro nada para vb6 sobre este protocolo, gracias
Responder Con Cita
  #2 (permalink)  
Antiguo 12-01-2008, 23:43:35
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

He puesto en google TRIVIAL FILE TRANSFER PROTOCOL y aparecen númerosos links de referencia. En el que te indico, eplica los encabezados y la forma de estableer el protocolo d comunicaciones para diferentes versiones. Utiliza UDP que lo puedes implementar con el control Winsock o bien con los API sockets si quieres trabajar a mas bajo nivel


http://tools.ietf.org/html/rfc1350


Espero que te resulte útil.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 13-01-2008, 01:37:39
Junior Member
Site Admin
 
Registrado: ene 2008
Posts: 9
mastersound Valoración +2
Predeterminado

gracias por responder, jejej yo no soy de los que a la primera de cambio piden ayuda, pero despues de 2 semanas intentandolo desisto, habre mirado mas de 20 o 30 paginas sobre tftp y mas o menos se como funciona el protocolo, el problema es que no uso vb desde hace mucho y no se hacer correctamente el encabezado, esto es lo que he hice pero parece que no esta bien porque no hace lo que quiero cuando le doy a click

Private Sub Command1_Click()

Dim Packet As String

Dim opcode As String
Dim filename As String
Dim byte As String
Dim octet As String
Dim byte As String

opcode = 3
filename = txtArchivo.Text
byte = 0
octet = 2
byte = 0

Packet = Packet & opcode & vbCrLf
Packet = Packet & filename & vbCrLf
Packet = Packet & byte & vbCrLf
Packet = Packet & octet & vbCrLf
Packet = Packet & byte & vbCrLf


WS.SendData Packet

End Sub

con un sniffer he visto que manda el paquete pero no como deveria, a ver si alguien me hecha una mano y termino el programa venga, gracias un saludo
Responder Con Cita
  #4 (permalink)  
Antiguo 13-01-2008, 07:54:18
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

Creo que tienes mal la asignación de datos a las variables que defines como tipo String en su totalidad.

Prueba lo siguiente y verifica que la trama está correctamente ensamblada.

Código:
opcode = "03" 
filename = txtArchivo.Text 
byte = chr(0) 
octet = "2" 
byte = chr(0)

Te aconsejo por otra parte que pongas un comando DoEvents tras SendData. Esto fuerza a que el sistema ejecute todas las tareas pendientes, incluso el envío por el socket de la información, de lo contarrio puedes crear un fallo inesperado en la sincronización de puertos.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 13-01-2008, 14:09:52
Junior Member
Site Admin
 
Registrado: ene 2008
Posts: 9
mastersound Valoración +2
Predeterminado

he estado haciendo unas pruebas y estaba equivocado respecto al paquete que tengo que enviar
Responder Con Cita
  #6 (permalink)  
Antiguo 15-01-2008, 23:57:52
Junior Member
Site Admin
 
Registrado: ene 2008
Posts: 9
mastersound Valoración +2
Predeterminado

una ayudita para este novato please??
Responder Con Cita
  #7 (permalink)  
Antiguo 16-01-2008, 08:20:34
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

Seguramente para los tipos numéricos con 2 decimales tienes que realizar una conversión binaria, lo que no sé es si lo tratará como un entero con signo o sin signo.

Para transformar a entero sin signo puedes utilizar la siguiente función

Código:
public function hex_unsignedInt(v as variant) as string
    dim low as byte
    dim upp as byte
    dim vnum as long
    on local error resume next 
    vnum = val(v)
    if vnum >65535 then 
        low=0
        upp=0
    else
        if sqr(vnum) >= 16 then 
            upp=int(sqr(vnum))
            low = v num- upp^2
        else
            upp = 0
            low = vnum
        end if 
    end if 
    hex_unsignedInt = hex(upp)+hex(low)
end function

Esta función te creará una cadena de caracteres con el valor hexadecimal del número solicitado, transformando el valor 3 en la cadena 00 03


PD: Piensa que la función la he escrito 'al vuelo' y no la he probado, por esta razón puede contener algún bug que en todo caso será fácil de solucionar.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #8 (permalink)  
Antiguo 16-01-2008, 12:41:35
Junior Member
Site Admin
 
Registrado: ene 2008
Posts: 9
mastersound Valoración +2
Predeterminado

muchas gracias alacanto por la ayuda
Responder Con Cita
  #9 (permalink)  
Antiguo 16-01-2008, 19:27:06
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

Me parece, estimado mastersound, que tienes un pequeño enjambre de conceptos. Todo número, independientemente del lenguaje y del sistema operativo, se almacena en memoria, discos, dispositivos y se envía por puertos de comunicaciones en formato empaquetado binario. Esto quiere decir que un byte del que en pantalla vemos representado el número 3, en memoria se encuentra almacenado como carácter ASCII 3, o chr(3) si lo prefieres.

Algunos editores suelen mostrar los archivos y memoria binaria en hexadecimal, ya que resulta más sencillo leer este formato que ciertos caracteres del sistema ASCII que en muchas ocasiones no resultan visibles en objetos de texto. Por esta razón el encabezado del protocolo comienza con un OPCODE de 2 bytes que seguramente será un entero sin signo. Esto quiere decir que el número entero 7531 se representará en memoria como la secuencia de caracteres (V|) y como hace daño a la vista, es mucho mejor mostrarlo en formato Hexa (56 87).

Fíjate en la diferencia, porque me parece que lo que tratas de ejecutar es poner 7531 en hexadecimal como 75 31...y eso no es ni mucho menos la representación hexadecimal de dicho valor.

Te adjunto un fichero que te convierte a hexa o empaquetado binario, dependiendo de la función que utilices.


Espero que te resulte útil.
Archivos Adjuntos
Tipo de Archivo: zip soundmaster_tftp.zip (1,7 KB, 3 visitas)
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #10 (permalink)  
Antiguo 16-01-2008, 20:36:03
Junior Member
Site Admin
 
Registrado: ene 2008
Posts: 9
mastersound Valoración +2
Predeterminado

jejeje pues si, tengo un pequeño lio con algunos conceptos, es lo malo de programar sin haber estudiado el lenguaje, solo con practica cuesta bastante mas creo yo, bueno a lo que vamos, el caso es que ya esta hecho y funciona bien, yo creia que no mandaba bien el paquete pero si lo manda exactamente como otro servidor tftp de pago, lo que pasa es que habia que dejar el modem 3 minutos encendido sin mandar nada y a los 3 minutos ya coge bien el paquete y se reinicia, este es el codigo que he usado
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Cliente-Servidor Dany77 sql 2005 3 06-06-2007 16:24:02
Servidor Ftp Manolillo Visual Basic 6.00 1 24-03-2006 10:52:43
Servidor de Aplicaciones imported_chiaravel Visual Basic 6.00 12 08-10-2004 16:53:33
servidor remoto nonnato Visual Basic 6.00 1 17-09-2004 01:00:00
Servidor nag1967 Visual Basic 6.00 4 13-02-1970 19:09:06


La franja horaria es GMT. Ahora son las 07:56:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right