Lasse Madsen skrev:
> Winsock1.RemoteHost = "223.223.23.51"
> Winsock1.Protocol = sckUDPProtocol
Du bør principielt sætte Protocol FØR RemoteHost.
> Winsock1.RemotePort = 69
> Winsock1.Bind 68
Prøv at lade være med at angive en lokal port i Bind. Så finder Winsock selv
en ledig port til dig, og det er lidt pænere (og jeg har selv haft problemer
med at få det til at virke, når jeg specificerer en lokal port).
> Winsock1.SendData "01readme.txt0netascii0"
Jeg kiggede lidt mere på RFC'en, og der står tydeligt at filnavn og mode
skal afsluttes af en "zero-byte". Du bør nok også bruge data-mode "octet" i
stedet for "netascii".
Desuden skal operation-code også sendes som byte-værdier (det synes jeg til
gengæld ikke fremgår tydeligt).
Jeg startede en TFTP-klient op mod en TFTP-server og prøvede at trace med
Ethereal og opdagede at der faktisk sættes to ekstra 0-bytes på i slutningen
af pakken.
Prøv derfor med:
Winsock1.SendData Chr(0) & Chr(1) & "readme.txt" & Chr(0) & "octet" &
Chr(0)
Hvis det ikke virker så tilføj: & Chr(0) & Chr(0)
Jeg kan på det varmeste anbefale dig at downloade Ethereal fra
www.ethereal.com - den kører både under Windows og Linux, og den kører som
en drøm
Husk at du også skal downloade og installere WinPcap_3_0.exe for
at få Ethereal til at køre under Windows.
> jeg kommer ikke igennem til min TFTP server på IP adressen (som er min
> lokale ip hvor serveren også kører på) jeg har forstået RFC således at jeg
> bestemmer den port jeg vil lytte på overfor serveren er dette korrekt ?
> hvordan ved serveren det så ?
Serveren får jo netop et datagram fra dig (din SendData), hvori der jo står
afsender IP-adresse og port-nummer.
-------
Tomas