Konec řádku v HTTP

December 9, 2006 on 12:52 pm | In Poznámečky |

Při pokračování mých pokusů o naprogramování vlastního jednoduchého BitTorrent klienta jsem se docela dlouho zdržel při implementaci “komunikátoru” s tracker serverem. Tracker server udržuje informace o jednotlivých členech a jeho role je nezastupitelná. Pro komunikaci používá asi všem známý HTTP protokol.

A teď kde přesně byl zakopaný pes. S většinou tracker serverů jsem se domluvil, ovšem můj lokalní azureus na můj požadavek nijak nereagoval. Což mi přislo strašně podivné. Nakonec jsem skončil u pročítaní RFC a problém úspěšně identifikoval. Jde o to, že linux používá pro označení konce řádků jeden znak LF (známá escape sekvence \n). No a HTTP vyžaduje windowsackou konvenci označení konce řádků, kdy je první CR a pak až LF (tedy \r\n), což mě docela překvapilo, ale po této úpravě již vše funguje jak má.

No a teď technická vložka - vzhledem k tomu, že od některých serverů jsem dostal odpověď ve tvaru v jakém jsem ji posílal, tak i oni museli trpět stejnou chybou jako můj “soft” a nebo byli natolik dokonalí, že rozpoznali, že se můj “soft” nechová přesně podle RFC a tak mi poslali odpoveď ve stejném tvaru v jakém jsem jim poslal požadavek. Zajimavé…

No Comments yet »

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^