HIZLARIA: Orain dezagun dive banaketa-kodea sartu
eta testuingurua begirada bat hartu bertan Kodea idazten duzun
da egonen da joan.
Egunaren amaieran, Ari ezartzea duzu
web zerbitzariak abonatzea.
Baina prestatu ditugu hezurdura arduradunarekin
kodea duten funtzionalitate batzuk, bereziki networking lotutako.
Ikus dezagun begirada bat.
>> Beraz, hemen goiko aldera ireki Fitxategiaren sorta bat da
Ezaugarri probatzeko makro-eskakizunak.
Azken hau, besterik gabe, c, zeinaren ezaugarri bat da man orrien sorta baten arabera
batzuk definitu behar duzu konstanteak horien egia izan
edo baita zenbaki jakin, beraz, izango da funtzio jakin batzuetara sarbidea izango duzu.
Bestela dute undeclared egingo eta ezin izango duzu sarbidea.
Beraz egin dut modu ren irakurketa man orriak.
Orain behera beheko, in 17 bitartez 15 lerro, dugu
deklaratu mugak sorta oso bat.
>> Eta maileguan dugu horiek batetik Apache izeneko web zerbitzari popular.
Eta hauek dira diren joan-zenbakiak
kopuruaren cap byte onartzen dira
HTTP eskaeraren testuinguru desberdinetan nabigatzaile bat bidali dit onartzen da.
Hurrengoa, octets definitzen dugu.
Orain zortzikote bat modu dotore bat besterik ez da byte bat, edo zortzi bit esaten.
Turns antaño byte batean zen ez derrigorrez zortzi bit,
beraz, zortzikote zortzi bit da beti.
Beraz, kasu honetan hartutako dugu Zer da ohikoa networking batean
zortzi byte zortzikote bat deituz munduan.
>> Hemen octets hura dut zehaztu Nik izan 512, beraz, askoz Kernet bezala
denean mordo bat irakurri dugu aldi berean byte, hemen ere,
bat irakurri goaz aldi berean octets sorta.
Goiburu fitxategiak sorta osoa Hurrengoa.
Nola hauek, besteak beste, jakin nuen?
Beno gizon irakurri besterik ez dut funtzioak zenbaki bat orriak
banaketa hori erabili dugu hori kodea eta direnak, besteak beste,
I zen azaltzen da.
>> Eta orain, datu mota bat behar dugu.
Zortzikote bat izendatu dugu char bat izan.
Eta geroago ikusiko dugun hori Kodea zehar erabiltzen.
Eta izendatu dugu bat prototipoak sorta osoa,
eta azkar ibiltzeko bidez dugu funtzio horietako bakoitzean.
Azkenik, eta agian garrantzitsua da mantentzea
Puntu honetan burura Istorioa, dela ez
dira, hain zuzen ere osotasunean aldagai global sorta
fitxategia goialdean, erroa, CFD, SFD, eskaera, fitxategi eta gorputza.
>> Orain, oro har, hainbeste global erabiliz aldagai edo aldagai global,
Ez da atzera praktika.
Baina bihurtzen da bat ere ari gara erabiliz izeneko teknika seinalearen manipulazioa geroago
kodea, eta horrek aukera ematen digu ere detektatzeko Erabiltzaileak zerbait hits
CTRL C eta itzali egin bezala zerbitzariak ondo.
Eta, gracefully egin eta benetan free memoria gora,
sarbidea izan behar dugu global aldagai horiek.
>> Eta orain dezagun nagusia begirada bat, eta horrek Programa honen osotasunean gidatzen.
Lehenik eta behin, hemen goian dugu errore kopurua aldakorra izan
agertzen ez den mota bat, baina hori da
benetan delako izeneko fitxategi batean definitu
error errno.h bertan dago barne gorago.
Gizakiari errno benetan egin baduzu ikusi definizioa gauza honetan,
ikusiko duzu hori ez dela bat aldagai global berezia duten
da sorta osoa ezarritako funtzioen idatzita ez
guk, baina Linux egileen arabera eta beste sistema benetan ezarri
aldakorra denean, zerbait zenbaki bat oker orokorrean ditzakezu,
daki zer egin okertuko.
>> Orain behera azpitik berri bat ikusiko duzu Teknika agian getopt erabiliz,
analisi komando laguntzen duen funtzioa lerroko argumentuak, beraz ez dugu
alferrik galtzen denbora traba kalkulatzen dute zerbait 8080 bezalako nola analizatu,
edo etenaren p edo marratxo h laguntza lortzeko.
getopt funtsean guretzat egiten duen.
Ikusi gizon orria gehiagorako.
>> Hurrengoa, errore apur bat egiten dugu ziurtatu egin egiaztapena
Portu zenbakia barnean dela zehaztu zehaztapenean sorta.
Hurrengoa, dei bat ikusiko dugu funtziora Hasteko, zeinen definizio zaitugu
begiratu une batean, eta bere izena bezala iradokitzen du, hau web zerbitzari hasten.
Hemen funtzio bat dei bat egin behar dugu Seinale deitzen dio,
eta denean Control C entzun duzu erabiltzailearen teklatu, aurrera eta deitu
izeneko funtzio handler hori joan Gauzak azken finean garbi sortu eta gelditu
zerbitzariari.
>> Horren azpian dago zer agertzen izan nahi begizta infinitua, lehen lerroan eta horietatik
eraginkortasunez dei bat da izeneko funtzio bat
berrezartzeko, guk geure buruari geroago ezartzeko ordena
askatzeko gure estatu global batzuk.
Horren ondoren lerro bat da kodea duten baldintzatuan
Bueltan egiaztatzea da konektatutako balioa.
Orain konektatutako predikatu baten itxura du, zerbait hori egia edo gezurra itzultzen.
Eta egiten du, baina ez dago Zerbait konektatutako berezia
dela, blokeo dei bat da.
Bertan eseri egingo da eta itxaron erabiltzaileen arakatzaileek arte
Web honen konektatzeko jarraituko zerbitzari eta soilik ondoren egingo da
egia edo gezurra itzuliko da, beraz, aurrera jarraitu dugu adierazpena bada horren barruan.
>> Han, nabarituko baten funtzio honetan Funtzio analisi izeneko, horrek idatzi dugu,
bertan octets guztia parses, guztiak nabigatzaile batetik datozen byte
zerbitzariari, beraz entregatu ahal izango dugu Atzera azken finean, inork balioa
global aldagai horiek duten dendetan besterik byte guztia
horren goiburuak eskaera, ez gorputza
ez ziren bada benetan da gorputz bat.
>> Orain hasiko behera beheko dugu goiburuak horiek analizatu ateratzeko
Informazio azpimultzo bat buruz zaintzen dugu.
Hain zuzen ere, per zehaztapen, lehen dugu
line eskatu nahi, hau da, Oso lehen lerro besterik dagoela
zorionez get antzeko zerbait esaten barra edo bide batzuk eta gero HTTP 1.1.
Metafora hau erabiltzen ari gara haystack batean orratz bat
bereziki begiratu chars edo helbideak.
Eta hain zuzen ere, ez dago kopuru bat gure banaketa kodea eginkizunak
duzula, gehiegi, lagungarria aurkitu dezake balioak bereziki bila.
>> Azken finean, byte horiek kopiatu dugu line aldakorra izeneko bat sartu,
nabarituko bertan, ere, dugu pilaketan banatzen
dinamikoki tamainako array bat dela medio.
Eta nahita saiatzen ari gara malloc deituz saihesteko
berriro delako, izan ere, Control C izatearen
Programa honen ezaugarri potentzial bat, dugu ez nahi kode hau izan da bat-batean
Erabiltzaile kolpeak eten Control C, emaitza
Ez duten I agian aukera dute zerbait doan I malloced dut.
Beraz, askoz ere erabili saiatzen ari naiz pilaren da hemen ezin dut.
>> Hurrengo sortu, dos to sorta osoa.
Zehaztapena azaldu beharko zehazki zer hemen espero gainean,
baina iruzkinak eman duzu zer iradokizun bat datza aurretik.
You lehenik eskaera lerroan baliokidetu
eta ziurtatu badirudi dena bezalakoa da zehaztapenak gramatika, nolabait esateko,
dio egin beharko lukete.
Behar duzu, ondoren zerbait ateratzeko kontsultari stuff out izeneko,
Galdera-ikur bat egin ondoren, atsegin ikusi gure Google adibide dugu
HD Parametro batean igaro zen.
Ondoren kateatu dugu elkarrekin web zerbitzariak erro
bide hori ere izan dituzten eskaera lehen lerroan
eta bide osoa osatzen fitxategia begiratu nahi dugu.
>> Hortik aurrera, ziurtatu goaz fitxategia existitzen dela eta da irakurri.
Eta gero ari gara ateratzeko du, bertako fitxategi-luzapena, .html edo php du,
edo batzuk, hala nola hedapen horren at Eskatutako kate amaiera oso.
Hurrengo sortu oso bat da kodea sorta idatzi dugu
PHP benetan sortzeko zuretzat edukia sortzen.
Hitz batean, hau kodea izenean hartzen
Fitxategiaren PHP interpretatzeko nahi duzun.
Atzean utzi zerbait izeneko tutu PHP interpretea sartu.
Atzera erantzuna nahiz eta gisa erantzuna fitxategi batean bera izan ziren.
Eta gero, batetik bestera joateko Fitxategi horren gorako byte, horiek guztiak tiraka buffer batean sartu
azken finean, ahal dugu, beraz, horiek inprimatu.
>> Izan ere, horiek guztiak deiak hemen dprintf
haien artean zerbait inprimatzeko gurekin a fitxategia deskriptorea, izeneko
zenbaki oso bat besterik ez da fitxategi bat adierazten du.
Oso antzeko espirituz, baina funtsean fitxategi batetik ezberdinak
star erakuslea.
Iragarki sintaxia bezala erabiltzeko moduan printf hemen dinamikoki ahal dut, beraz,
luzera antzeko zerbait txertatu HTTP goiburu baten balioa
Content-Length izeneko.
Eta azken finean, erabiltzen dut eskuinera benetan idatzi funtzio
eskaerari gorputza.
>> Zoritxarrez, bakarrik inplementatu dugu dinamikoki laguntza
Sortutako PHP fitxategiak.
Ez dugu laguntza ezartzeko fitxategi estatikoak GIF bezalako, eta jpegs,
eta CSS eta HTML fitxategiak.
Hori, zoritxarrez, da ezkerrera bezeroaren helburua erantzuten
hau egin.
Beraz, ez dago aurkitu ez dagoela da duzu ez bloke horren barruan, askoz inspirazioa,
baina bazara pixka bat handiagoa nola at PHP kodea interpretatzeko inguru joan ginen,
funtzioak erabili dituzu apur bat desberdinak dira.
>> Izan ere, maileguan dezakezu eta ezaugarri batzuk
agian Kernet batetik Arazoa set, zeren
guztiak egunaren amaieran behar duzu egiten da hemen behin badakizu zer fitxategia ireki
eta behin badakizu nik horrela deitzen MIME mota edo eduki motaren arabera,
den byte horiek ere irakurri behar duzu eta, nolabait, txu atzera horiek out.
>> Eta orain, hau bira bat fitxategia beste funtzio.
Up lehen konektatzean, horrek, besterik gabe egiazkoa itzultzen
denean, azkenik entzun ez badu bat Erabiltzaile bat konexioa.
Hurrengo sortu error da.
Akatsa, bere aldetik, gisa funtzioa dugu bat ezberdinen 400 guztiak kudeatzeko idatzi
eta 500 HTTP egoera baliteke nahi duzun kodeak
atzera bidaltzeko erabiltzaileari, mezu estandar bat batera.
>> Hurrengo karga da eman, bereziki bat meaty funtzioa, horren helburua bizitzan
da fitxategia izar bat irakurri erakuslea fitxategi baten edukia buffer global batean sartu
orokorrean deklaratu dugun Goiko [? nagusiak. ?]
Bit konplexu bat dugulako da byte irakurtzeko fitxategi batetik dute
baina iterazio bakoitzean egiaztatu dugu dagoeneko ala
hit fitxategi amaieran edo beste zerbait gaizki joan da.
Eta erabili idazketa dugu ziurtatu egiteko edozein dela buffer erabiltzen ari gara hazten ari da
eta gero eta gehiago hazten eta beti Aurrera ostatu byte kopurua of
han egokitzeko behar ditugu.
Handler, bere aldetik, hori lortzen funtzioa
izateko modu deitutako erregistratu Control C seinalea bezala
atzematen nahi dugula.
Iragarki hemen maneiatzailean azken finean, hori
deiak gelditzeko, noski web zerbitzaria gelditu egiten da.
Eta, zoritxarrez, bilatu ez dago garatuta.
Espiritua, hau da, bat funtzioa nahiko erraza da.
Emandako fitxategi-luzapen bat, berau behar itzultzeko nik MIME llamado
mota edo eduki mota.
Eta zehaztu dugu zehaztapen zer mapping hori izan behar du.
Baina itzultzeko behar duzu c kodeari azken finean.
>> Hurrengo gure antzera meaty funtzioa da eman analisi horren helburua bizitzan izeneko,
da, irakurri, ez fitxategi batetik, baina sareko konexioa from.
Hain zuzen ere, irakurketa eta analizatzean HTTP eskaera hori nabigatzaile bat datoz
eta, beraz, zerbitzariari azken finean, analizatu ahal izango dugu
besterik eskaeran goiburuak at line eta itzuli nahi dutenek
buffer global bat modu hori deklaratu dugu goian [? nagusiak. ?]
>> Berrezarri, bere aldetik, a dugun definitzeko funtzio
duten iteratively barruan izeneko lortzen aldi bakoitzean nagusiaren Oraindik buruz
entzuten hasteko prest konexio berri bat
beti jakin dugu, beraz, gure aldagai estatuan
eta, beraz, era berean dugu edozein memoria askatu
baliteke esleitu Aurreko sareko konexioa.
Hurrengo sortu da hasten da, funtzio hori idatzi dugu
hori osotasunean dauka networking kode asko
azken finean, web zerbitzaria abiatzen da.
>> Azken up funtzioa da stop deitzen diren
du zehazki hori, web zerbitzaria gelditu egiten da.
Baina lehen askatzen duen memoria hori oraindik izan dira.
Baina, azken finean, deitzen da irteera nahiz eta kontrola itzuli gabe
gure funtzio nagusia.
Azken finean, bat teknika garrantzitsu gehienetan
tzen denean web zerbitzariak hau da trial eta errore apur bat izango da,
nabigatzaileak bat leiho irekia izatea egokian eta terminal-leiho bat
ezkerrera, zerbitzariak kontsola leiho, beraz,
mezuak direla ikusiko pantailan agertuko ari.
>> Baina oraindik hobea heren bat izango litzateke leiho, bigarren terminal-leihoa,
bertan Telnet, erabilera erabili duzu zein da zehaztutako agindutako.
Eta Telnet besterik ez da oso bat sare programa erraz
hori nahi itxurak aukera ematen dizu leiho batean nabigatzaile bat izan
Beste leiho bitartean hizketan.
Ikusten duzun honetan textual zehazki komandoak
direla datozen atzera zerbitzaritik bezeroa
poking beharrik gabe chrome developer inguruan
bestela batean tresnak Interfaze clunkier.