[python] sockety - problem s HTTP spojenim

Tomy novella tomasnovella na gmail.com
Čtvrtek Listopad 15 17:45:16 CET 2007


ahoj,
1) diky vsetkym(hlavne leovi) *velmi* pekne za odpovede ;-)
2) som chory a som presedel dneska 5 hodin pri pocitaci, preto som
uplne prehliadol celu Tvoju odpoved, len som si pozrel, ze kde mam
chybu(v malom cisle prijatych dat) a dalej som si uz nevsimal cely
obsah programu. velmi sa ospravedlnujem.

Dňa 15.11.2007, Leos Pol <leos na radiante-corp.com> napísal(a):
> Mozna jste presne nepochopil muj priklad, tak ho trosku rozepisu.
> Nejdrive si pripravim buffer, ktery bude obsahovat nakonec vysledek,
> tzn. string obsahujici nactene hlavicky + celou html. Cyklim a pokud je
> porad co cist, tak prectu maximalne 4k a pridavam to do vysledneho buf.
> To znamena, ze vzdy prectu celou stranku. Jen se trosku opravim, protoze
> tam mam trapnou chybku:
>
>     buf = ''
>     read = 'go'
>     while read:
>         read = clisock.recv(4096)
>         buf += read
>     print buf
>
>
> Ohledne teorie vas odporucim treba na nasledujici linky:
>
>     http://cs.wikipedia.org/wiki/UDP
>     http://cs.wikipedia.org/wiki/TCP
>
> Predstavte si, ze pisete jednoducheho clienta na prenos souboru. Je pro
> vas samozrejme dulezite, aby vsechny odeslana data dosly a jeste k tomu
> ve spravnem poradi. Proto pouzijete steam, ktery tyto problemy resi.
> Datagram pak naopak pouzijete tam, kde toto nepotrebujete a ani vas to
> nezajima - VoIP, DNS, broadcast.
> Ale to je jen takovy nastrel, proto radeji vyhledejte nejake materialy
> na internetu - vytecne veci se daji docist v prednaskovych materialech
> univerzit :-)
>
> Leo
> BTW: kdysi davno jsem to taky zkousel a nepodarilo se mi apache donutit,
> aby mi odpovidal v HTTP/1.0
>
> Tomy novella wrote:
> > ahoj,
> > tak potom mam este jednu otazku. presnejsie dve :) totiz nedalo by sa
> > to nejak tak spravit, aby mi zobrazo hocako velku stranku? nechcem
> > robit obmedzenie na velkost stranky, pretoze co ak bude vacsia, ako je
> > dane obmedzenie.. (naco je vlastne to obmedzenie dobre?;-(( ). este by
> > ma zaujimalo, ze ci niekto nevie, ze ako to riesia webove browsre? oni
> > maju nejake obmedzenie?
> >
> > aa ta "druha otazka" ;) sa tyka socketov, presnejsie
> > kedy sa pouziva datagramove a kedy streamove spojenie? na nete som sa
> > len dozvedel rozdiel medzi nimi, ale par prikladov pouzitia z praxi by
> > nezaskodilo :)
> >
> >
> > diky:)
> >
> > 2007/11/15, Leos Pol <leos na radiante-corp.com>:
> >
> >> Zdravim,
> >>
> >> v podstate vsechno dobre, jen ze socketu pak nactete jen 100B, takze
> >> radek recv bych treba prepsal na tohle:
> >>
> >>     buf = ''
> >>     read = clisock.recv(4096)
> >>     while read:
> >>         buf += read
> >>         read = clisock.recv(4096)
> >>     print buf
> >>
> >>
> >> Leo
> >>
> >> Tomy novella wrote:
> >>
> >>> ahoj,
> >>> ucim sa zaklady prace so socketmi, tak som si napisal takyto skriptik:
> >>>
> >>> import socket
> >>> clisock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> >>> clisock.connect(('ww1.chatq.sk', 80))
> >>> clisock.send('GET /index.php HTTP/1.0\nHost: ww1.chatq.sk\n\n')
> >>> print clisock.recv(100)
> >>> clisock.close()
> >>> print "koniec"
> >>>
> >>> problemom vsak je, ze ked ho spustim, tak mi vrati nieco taketo:
> >>>
> >>> HTTP/1.1 200 OK
> >>> Date: Thu, 15 Nov 2007 15:04:15 GMT
> >>> Server: Apache
> >>> X-Powered-By: PHP/4.4.8_pre200
> >>> koniec
> >>>
> >>> a ja pritom chcem, aby mi vratilo aj cely HTML kod, ktory by mal
> >>> apache vraciat...
> >>> preco ho nevracia a vracia mi spat len par hlaviciek?
> >>>
> >>> aa ako ceresnicka by ma zaujimalo, ze preco ked to pytam cez HTTP
> >>> verziu 1.0, tak mi to vracia cez HTTP 1.1 :)
> >>>
> >>> diky :)
> >>>
> >>>
> >>>
> >> --
> >> ----
> >> Leos Pol
> >> Team Leader
> >> Radiante Corp.
> >>
> >> If it can be imagined,
> >> we can implement it
> >>
> >> _______________________________________________
> >> Python mailing list
> >> Python na py.cz
> >> http://www.py.cz/mailman/listinfo/python
> >>
> >>
> >
> >
> >
>
>
> --
> ----
> Leos Pol
> Team Leader
> Radiante Corp.
>
> If it can be imagined,
> we can implement it
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


-- 
PS: prosim v mailoch tykat! nie vykat ;)

Tom na sQo
tomasnovella na gmail.com


Další informace o konferenci Python