1 00:00:00,000 --> 00:00:09,647 2 00:00:09,647 --> 00:00:11,730 SPEAKER: Sekarang mari kita menyelam ke dalam kod pengagihan 3 00:00:11,730 --> 00:00:14,470 dan kita lihat pada konteks di mana kod yang anda menulis 4 00:00:14,470 --> 00:00:15,780 akan beroperasi. 5 00:00:15,780 --> 00:00:17,350 Pada akhir hari, anda akan melaksanakan 6 00:00:17,350 --> 00:00:18,710 keseluruhan pelayan web. 7 00:00:18,710 --> 00:00:20,460 Tetapi kita telah disediakan anda dengan rangka 8 00:00:20,460 --> 00:00:24,090 kod yang mempunyai beberapa fungsi, terutamanya yang berkaitan dengan rangkaian. 9 00:00:24,090 --> 00:00:25,390 Mari kita lihat satu. 10 00:00:25,390 --> 00:00:27,560 >> Jadi di sini ke arah bahagian atas fail adalah sekumpulan 11 00:00:27,560 --> 00:00:30,020 ciri menguji keperluan makro. 12 00:00:30,020 --> 00:00:33,570 Sekarang ini hanya ciri c, di mana mengikut sekumpulan halaman man 13 00:00:33,570 --> 00:00:36,410 anda perlu menentukan beberapa pemalar ini adalah benar 14 00:00:36,410 --> 00:00:39,920 atau untuk menjadi lebih nombor tertentu supaya anda mempunyai akses kepada fungsi-fungsi tertentu. 15 00:00:39,920 --> 00:00:42,470 Jika tidak mereka akan tidak diisytiharkan dan anda tidak akan mempunyai akses. 16 00:00:42,470 --> 00:00:45,340 Jadi saya telah melakukan ini dengan cara membaca halaman manusia. 17 00:00:45,340 --> 00:00:48,410 Sekarang ke bawah di bawah, di garis 15 melalui 17, kita 18 00:00:48,410 --> 00:00:50,550 mempunyai sejumlah besar had diisytiharkan. 19 00:00:50,550 --> 00:00:53,370 >> Dan kami telah dipinjam ini dari pelayan web popular dipanggil Apache. 20 00:00:53,370 --> 00:00:54,650 Dan ini adalah hanya nombor yang akan 21 00:00:54,650 --> 00:00:56,810 untuk menghadkan jumlah bait yang dibenarkan 22 00:00:56,810 --> 00:01:01,930 dalam pelbagai konteks untuk permintaan HTTP bahawa pelayar yang dibenarkan untuk menghantar saya. 23 00:01:01,930 --> 00:01:04,310 Seterusnya, kita menentukan octet. 24 00:01:04,310 --> 00:01:07,790 Sekarang octet yang hanya cara yang mewah daripada menyebut bait, atau lapan bit. 25 00:01:07,790 --> 00:01:10,720 Rupa-rupanya dalam tadi bait tidak semestinya lapan bit, 26 00:01:10,720 --> 00:01:12,339 jadi octet sentiasa lapan bit. 27 00:01:12,339 --> 00:01:14,880 Jadi dalam kes ini kita telah diterima pakai apa yang biasa dalam rangkaian 28 00:01:14,880 --> 00:01:17,410 dunia memanggil lapan bait octet satu. 29 00:01:17,410 --> 00:01:21,840 >> Di sini saya telah dinyatakan bahawa octet akan menjadi 512, supaya sama seperti dalam forensik 30 00:01:21,840 --> 00:01:24,170 apabila kita membaca sekumpulan bait pada satu masa, di sini juga, 31 00:01:24,170 --> 00:01:27,390 kita akan membaca sekumpulan octet pada satu masa. 32 00:01:27,390 --> 00:01:28,922 Seterusnya sejumlah besar fail header. 33 00:01:28,922 --> 00:01:30,255 Bagaimana saya tahu untuk memasukkan ini? 34 00:01:30,255 --> 00:01:32,730 Well, saya hanya membaca orang laman untuk beberapa fungsi 35 00:01:32,730 --> 00:01:35,620 bahawa kita akan menggunakan dalam pengagihan ini kod dan termasuk dalam orang-orang yang 36 00:01:35,620 --> 00:01:37,390 Saya telah diarahkan untuk. 37 00:01:37,390 --> 00:01:39,090 >> Dan sekarang kita mempunyai jenis data. 38 00:01:39,090 --> 00:01:41,470 Kami telah diisytiharkan octet untuk menjadi char a. 39 00:01:41,470 --> 00:01:44,040 Dan kita akan lihat nanti bahawa itulah digunakan di seluruh kod. 40 00:01:44,040 --> 00:01:45,670 Dan kami telah mengisytiharkan sejumlah besar prototaip, 41 00:01:45,670 --> 00:01:47,961 dan kami akan berjalan cepat melalui setiap fungsi-fungsi itu. 42 00:01:47,961 --> 00:01:50,400 Akhir sekali, dan mungkin yang paling penting yang perlu 43 00:01:50,400 --> 00:01:52,520 keberatan pada ketika ini dalam cerita, adalah bahawa terdapat 44 00:01:52,520 --> 00:01:54,520 , sebenarnya keseluruhan sekumpulan pembolehubah global 45 00:01:54,520 --> 00:02:00,430 di bahagian atas fail, akar, CFD, SFD, permintaan, fail dan badan. 46 00:02:00,430 --> 00:02:03,960 >> Sekarang umumnya, menggunakan begitu banyak global pembolehubah, atau pembolehubah global di semua, 47 00:02:03,960 --> 00:02:05,280 bukan amalan belakang. 48 00:02:05,280 --> 00:02:09,090 Tetapi ternyata kami juga menggunakan teknik pengendalian dipanggil isyarat kemudian 49 00:02:09,090 --> 00:02:11,930 dalam kod, yang membolehkan kita untuk mengesan apabila pengguna menekan sesuatu 50 00:02:11,930 --> 00:02:15,080 seperti CTRL C dan menutup pelayan anggun. 51 00:02:15,080 --> 00:02:18,240 Dan untuk berbuat demikian anggun dan benar-benar bebas memori, 52 00:02:18,240 --> 00:02:20,800 kita perlu mempunyai akses kepada pembolehubah global. 53 00:02:20,800 --> 00:02:24,510 >> Dan sekarang mari kita lihat utama, yang memacu keseluruhan program ini. 54 00:02:24,510 --> 00:02:27,720 Pertama, di bahagian atas di sini kita mempunyai nombor ralat pembolehubah 55 00:02:27,720 --> 00:02:29,570 yang nampaknya tidak mempunyai jenis, tetapi itu 56 00:02:29,570 --> 00:02:31,500 kerana ia sebenarnya yang ditakrifkan dalam fail yang dipanggil 57 00:02:31,500 --> 00:02:34,800 kesilapan yang errno.h dimasukkan sehingga lebih tinggi. 58 00:02:34,800 --> 00:02:38,780 Jika anda manusia errno untuk benar-benar lihat takrifan bagi perkara ini, 59 00:02:38,780 --> 00:02:41,230 anda akan melihat bahawa ini adalah satu pembolehubah global khas yang 60 00:02:41,230 --> 00:02:43,350 ditetapkan oleh sejumlah besar fungsinya tidak bertulis 61 00:02:43,350 --> 00:02:48,730 oleh kami, tetapi oleh pengarang Linux dan sistem lain untuk benar-benar menetapkan 62 00:02:48,730 --> 00:02:52,400 nombor kepada yang berubah-ubah apabila sesuatu pergi salah supaya anda boleh secara global 63 00:02:52,400 --> 00:02:54,830 memikirkan apa yang telah berlaku. 64 00:02:54,830 --> 00:02:58,540 >> Sekarang turun di bawah anda akan melihat baru teknik mungkin menggunakan getopt, 65 00:02:58,540 --> 00:03:01,790 fungsi yang membantu arahan hurai argumen baris supaya kita tidak 66 00:03:01,790 --> 00:03:05,540 perlu mengganggu masa membuang memikirkan bagaimana untuk menghuraikan sesuatu seperti 8080, 67 00:03:05,540 --> 00:03:08,350 atau p dash, atau dash h untuk mendapatkan bantuan. 68 00:03:08,350 --> 00:03:10,300 getopt dasarnya adakah itu untuk kami. 69 00:03:10,300 --> 00:03:11,750 Lihat halaman lelaki itu lebih. 70 00:03:11,750 --> 00:03:13,960 >> Seterusnya, kami melakukan sedikit kesilapan memeriksa untuk memastikan 71 00:03:13,960 --> 00:03:17,420 bahawa nombor port adalah dalam julat yang dinyatakan dalam spec. 72 00:03:17,420 --> 00:03:20,240 Seterusnya, kita melihat panggilan ke fungsi yang mula, yang definisi kami akan 73 00:03:20,240 --> 00:03:24,040 melihat dalam sekejap, dan sebagai namanya mencadangkan, ini bermula pelayan web. 74 00:03:24,040 --> 00:03:26,960 Di sini kita mempunyai panggilan ke fungsi dipanggil isyarat yang mengatakan, 75 00:03:26,960 --> 00:03:30,750 jika dan apabila anda mendengar Kawalan C daripada keyboard pengguna, pergi ke depan dan memanggil 76 00:03:30,750 --> 00:03:34,650 fungsi dipanggil pengendali perkara yang berlaku perkara yang akhirnya bersih dan berhenti 77 00:03:34,650 --> 00:03:35,500 pelayan. 78 00:03:35,500 --> 00:03:39,470 >> Di bawah adalah bahawa apa yang kelihatan sebagai satu gelung tak terhingga, baris pertama yang 79 00:03:39,470 --> 00:03:41,660 berkesan adalah panggilan untuk fungsi yang dipanggil 80 00:03:41,660 --> 00:03:45,110 menetapkan semula, yang kita diri kita sendiri melaksanakan di kemudian hari bagi 81 00:03:45,110 --> 00:03:47,470 untuk membebaskan beberapa negeri global kami. 82 00:03:47,470 --> 00:03:50,480 Selepas itu adalah garis kod yang bersyarat 83 00:03:50,480 --> 00:03:52,576 ialah memeriksa pulangan nilai yang disambungkan. 84 00:03:52,576 --> 00:03:55,700 Sekarang kelihatan berkaitan seperti predikat yang, sesuatu yang mengembalikan benar atau palsu. 85 00:03:55,700 --> 00:03:58,040 Dan ia, tetapi ada sesuatu yang istimewa dalam berhubung 86 00:03:58,040 --> 00:03:59,960 dalam bahawa itu panggilan sekatan. 87 00:03:59,960 --> 00:04:03,180 Ia akan duduk di sana dan menunggu sehingga pelayar pengguna 88 00:04:03,180 --> 00:04:05,860 cuba untuk menyambung ke web ini pelayan dan hanya kemudian akan ia 89 00:04:05,860 --> 00:04:10,160 kembali benar atau salah supaya kita teruskan untuk bahagian dalam ini jika kenyataan. 90 00:04:10,160 --> 00:04:13,870 >> Apabila di sana, melihat fungsi ini kepada fungsi dipanggil hurai, yang kita menulis, 91 00:04:13,870 --> 00:04:17,230 yang mem-parsing semua octet, semua daripada bait yang datang dari pelayar 92 00:04:17,230 --> 00:04:21,010 kepada pelayan, supaya kita boleh menyerahkan anda kembali akhirnya satu nilai kepada satu 93 00:04:21,010 --> 00:04:24,420 orang-orang pembolehubah global yang kedai semua bait dalam hanya 94 00:04:24,420 --> 00:04:26,630 tajuk itu permintaan, bukan badan 95 00:04:26,630 --> 00:04:28,920 jika terdapat sebenarnya badan kepadanya. 96 00:04:28,920 --> 00:04:32,980 >> Sekarang turun di bawah kita mula menghuraikan mereka header untuk mengekstrak 97 00:04:32,980 --> 00:04:35,490 subset maklumat bahawa kita mengambil berat tentang. 98 00:04:35,490 --> 00:04:37,740 Secara khususnya, setiap yang spesifikasi, kita pertama 99 00:04:37,740 --> 00:04:40,580 mahu meminta talian, yang merupakan hanya itu talian yang pertama yang 100 00:04:40,580 --> 00:04:45,710 mudah-mudahan mengatakan sesuatu seperti get mengurangkan atau beberapa jalan dan kemudian HTTP 1.1. 101 00:04:45,710 --> 00:04:48,150 Kami menggunakan metafora ini jarum dalam sisa rumput kering 102 00:04:48,150 --> 00:04:50,370 mencari tertentu aksara atau alamat. 103 00:04:50,370 --> 00:04:53,120 Dan sesungguhnya, ada beberapa fungsi dalam kod pengedaran kami 104 00:04:53,120 --> 00:04:56,930 bahawa anda juga mungkin mendapati membantu ketika mencari nilai-nilai tertentu. 105 00:04:56,930 --> 00:05:00,630 >> Akhirnya, kami menyalin bait ini ke garis ubah dikenali sebagai, 106 00:05:00,630 --> 00:05:03,510 yang perasan, terlalu, sudah tentu kita diperuntukkan pada timbunan 107 00:05:03,510 --> 00:05:05,890 melalui pelbagai dinamik yang bersaiz. 108 00:05:05,890 --> 00:05:08,350 Dan kita sengaja cuba untuk mengelakkan memanggil malloc 109 00:05:08,350 --> 00:05:11,100 kerana sekali lagi, kerana Kawalan C kerana 110 00:05:11,100 --> 00:05:14,630 ciri potensi program ini, kita tidak mahu mempunyai kod ini tiba-tiba 111 00:05:14,630 --> 00:05:17,479 diganggu oleh memukul pengguna Kawalan C, hasil yang 112 00:05:17,479 --> 00:05:20,270 adalah bahawa saya tidak mungkin mempunyai peluang yang untuk sesuatu yang percuma saya malloced. 113 00:05:20,270 --> 00:05:23,660 Jadi, saya cuba untuk menggunakan sebanyak daripada tindanan adalah saya boleh di sini. 114 00:05:23,660 --> 00:05:26,040 >> Selanjutnya, sejumlah besar kepada dos. 115 00:05:26,040 --> 00:05:28,930 Penentuan itu akan menjelaskan secara terperinci pada betul-betul apa yang diharapkan di sini, 116 00:05:28,930 --> 00:05:31,800 tetapi ulasan memberikan anda tanda-tanda bahawa apa yang akan berlaku. 117 00:05:31,800 --> 00:05:33,830 Anda perlu terlebih dahulu mengesahkan garis permintaan 118 00:05:33,830 --> 00:05:37,760 dan memastikan bahawa ia kelihatan seperti spesifikasi tata bahasa, boleh dikatakan, 119 00:05:37,760 --> 00:05:38,541 kata yang sepatutnya. 120 00:05:38,541 --> 00:05:41,290 Kemudian anda perlu untuk mendapatkan sesuatu dipanggil pertanyaan tersebut, bahan yang keluar 121 00:05:41,290 --> 00:05:44,200 selepas tanda tanya, seperti yang kita lihat dengan contoh Google kami 122 00:05:44,200 --> 00:05:46,320 di lulus dalam parameter HD. 123 00:05:46,320 --> 00:05:49,050 Kami kemudian menyatukan bersama akar pelayan web 124 00:05:49,050 --> 00:05:52,520 dengan jalan yang ada di bahawa permintaan baris pertama 125 00:05:52,520 --> 00:05:56,010 dan membentuk laluan penuh fail yang kita mahu mencari. 126 00:05:56,010 --> 00:06:00,300 >> Selepas itu, kita akan memastikan bahawa fail wujud dan boleh dibaca. 127 00:06:00,300 --> 00:06:05,100 Dan kemudian kami akan mengeluarkan mereka sambungan fail, yang .html atau .php itu, 128 00:06:05,100 --> 00:06:09,920 atau beberapa tempoh lanjutan itu di sangat akhir untuk rentetan yang diminta. 129 00:06:09,920 --> 00:06:11,940 Sehingga seterusnya ialah keseluruhan sekumpulan kod kita menulis 130 00:06:11,940 --> 00:06:15,800 untuk benar-benar menjana PHP menjana kandungan untuk anda. 131 00:06:15,800 --> 00:06:18,010 Secara ringkasnya, ini kod mengambil nama 132 00:06:18,010 --> 00:06:20,250 fail yang anda mahu PHP untuk mentafsir. 133 00:06:20,250 --> 00:06:24,630 Kami menyampaikan ia dengan sesuatu yang dinamakan paip ke dalam jurubahasa PHP ini. 134 00:06:24,630 --> 00:06:28,060 Kembali sambutan yang seolah-olah sambutan adalah fail sendiri. 135 00:06:28,060 --> 00:06:32,110 Dan kemudian kita melelar lebih yang fail bait, menarik mereka semua ke dalam satu penampan 136 00:06:32,110 --> 00:06:34,180 supaya kita dapat akhirnya mencetak mereka keluar. 137 00:06:34,180 --> 00:06:37,230 >> Sesungguhnya, semua ini panggilan di sini untuk dprintf 138 00:06:37,230 --> 00:06:40,110 membolehkan kita untuk mencetak sesuatu dipanggil penghurai fail, yang 139 00:06:40,110 --> 00:06:42,350 hanya integer yang mewakili fail. 140 00:06:42,350 --> 00:06:45,360 Hampir sama di hadapan Allah, tetapi berbeza dari fail 141 00:06:45,360 --> 00:06:46,620 penunjuk bintang. 142 00:06:46,620 --> 00:06:50,260 Perhatikan bagaimana anda boleh menggunakan sintaks seperti printf sini supaya saya boleh dinamik 143 00:06:50,260 --> 00:06:54,000 memasukkan sesuatu seperti panjang untuk nilai sebuah header HTTP 144 00:06:54,000 --> 00:06:55,270 dipanggil Panjang Kandungan. 145 00:06:55,270 --> 00:06:57,990 Dan akhirnya saya menggunakan fungsi betul untuk benar-benar menulis 146 00:06:57,990 --> 00:07:00,040 badan untuk permintaan itu. 147 00:07:00,040 --> 00:07:03,750 >> Malangnya, kami hanya dilaksanakan sokongan untuk secara dinamik 148 00:07:03,750 --> 00:07:05,350 dijana PHP fail. 149 00:07:05,350 --> 00:07:08,520 Kami tidak melaksanakan sokongan untuk fail statik seperti gifs, dan JPEG, 150 00:07:08,520 --> 00:07:10,660 dan CSS dan HTML fail. 151 00:07:10,660 --> 00:07:14,450 Bahawa, malangnya, yang tinggal untuk anda untuk bertindak balas untuk tujuan pelanggan 152 00:07:14,450 --> 00:07:15,090 ini lakukan. 153 00:07:15,090 --> 00:07:20,050 Jadi di sana anda akan mendapati bahawa terdapat tidak banyak inspirasi dalam blok itu, 154 00:07:20,050 --> 00:07:23,520 tetapi jika anda sedikit lebih tinggi pada bagaimana kami pergi tentang mentafsirkan kod PHP, 155 00:07:23,520 --> 00:07:25,520 fungsi yang anda akan menggunakan adalah sedikit berbeza. 156 00:07:25,520 --> 00:07:27,561 >> Malah, anda boleh meminjam beberapa fungsi 157 00:07:27,561 --> 00:07:29,620 mungkin daripada forensik set masalah, kerana 158 00:07:29,620 --> 00:07:32,860 pada akhir hari itu semua yang anda perlu lakukan di sini adalah apabila anda tahu apa yang fail terbuka 159 00:07:32,860 --> 00:07:35,690 dan sebaik sahaja anda tahu ia apa yang dipanggil Jenis MIME atau jenis kandungan, 160 00:07:35,690 --> 00:07:39,040 anda perlu membaca dalam mereka bytes dan entah bagaimana meludah mereka keluar. 161 00:07:39,040 --> 00:07:41,190 >> Dan sekarang lawatan ini fungsi lain fail. 162 00:07:41,190 --> 00:07:43,820 Sehingga pertama disambungkan, yang hanya mengembalikan benar 163 00:07:43,820 --> 00:07:47,350 apabila ia akhirnya mendengar yang sambungan daripada pengguna. 164 00:07:47,350 --> 00:07:48,786 Sehingga seterusnya ialah kesilapan. 165 00:07:48,786 --> 00:07:52,296 Ralat Sementara itu, sebagai fungsi kita menulis untuk mengendalikan semua berbeza 400 166 00:07:52,296 --> 00:07:55,360 dan status HTTP 500 kod yang anda mungkin mahu 167 00:07:55,360 --> 00:07:58,500 untuk menghantar kembali kepada pengguna, bersama-sama dengan mesej standard. 168 00:07:58,500 --> 00:08:01,950 >> Sehingga seterusnya ialah beban, yang terutama fungsi penuh daging, yang tujuan dalam kehidupan 169 00:08:01,950 --> 00:08:06,920 adalah untuk membaca dari fail bintang penunjuk kandungan fail ke dalam buffer global 170 00:08:06,920 --> 00:08:09,000 bahawa kita diisytiharkan di seluruh dunia atas [? utama. ?] 171 00:08:09,000 --> 00:08:12,649 Ini adalah agak rumit kerana kita perlu membaca bait dari fail 172 00:08:12,649 --> 00:08:14,690 tetapi memeriksa setiap lelaran sama ada kita telah pun 173 00:08:14,690 --> 00:08:17,600 melanda akhir fail atau sesuatu yang lain telah berlaku. 174 00:08:17,600 --> 00:08:21,210 Dan kita menggunakan realloc memastikan bahawa apa penampan kita menggunakan berkembang 175 00:08:21,210 --> 00:08:24,440 dan yang semakin meningkat dan berkembang dan sentiasa mendahului bilangan bait 176 00:08:24,440 --> 00:08:25,675 bahawa kita perlu menyesuaikan diri di sana. 177 00:08:25,675 --> 00:08:27,550 Pengendali, sementara itu, adalah fungsi yang mendapat 178 00:08:27,550 --> 00:08:30,630 dipanggil dengan cara yang mempunyai berdaftar Kawalan C sebagai isyarat 179 00:08:30,630 --> 00:08:32,140 yang kita mahu untuk memintas. 180 00:08:32,140 --> 00:08:34,070 Perhatikan di sini dalam pengendali bahawa ia akhirnya 181 00:08:34,070 --> 00:08:36,780 panggilan berhenti, yang sudah tentu berhenti pelayan web. 182 00:08:36,780 --> 00:08:39,750 Dan malangnya, lookup tidak dilaksanakan. 183 00:08:39,750 --> 00:08:41,940 Di hadapan Allah, ini adalah fungsi yang agak mudah. 184 00:08:41,940 --> 00:08:44,900 Memandangkan sambungan fail, ia memerlukan untuk kembali ia dipanggil MIME 185 00:08:44,900 --> 00:08:46,320 jenis atau jenis kandungan. 186 00:08:46,320 --> 00:08:49,260 Dan kita nyatakan dalam penentuan itu apa pemetaan yang mesti. 187 00:08:49,260 --> 00:08:52,330 Tetapi anda perlu untuk menterjemahkan ia akhirnya c kod. 188 00:08:52,330 --> 00:08:56,490 >> Sehingga seterusnya ialah fungsi juga penuh daging kami dipanggil hurai, tujuan yang dalam kehidupan 189 00:08:56,490 --> 00:08:59,350 adalah untuk membaca, bukan dari fail, tetapi dari sambungan rangkaian. 190 00:08:59,350 --> 00:09:03,510 Secara khusus, membaca dan menghuraikan yang Permintaan HTTP yang yang datang dari pelayar 191 00:09:03,510 --> 00:09:05,940 kepada pelayan supaya akhirnya kita dapat menghuraikan 192 00:09:05,940 --> 00:09:09,530 pada hanya pengepala dalam permintaan itu talian dan kembali mereka kepada anda 193 00:09:09,530 --> 00:09:12,720 melalui penampan global yang kita diisytiharkan di atas [? utama. ?] 194 00:09:12,720 --> 00:09:14,880 >> Tetap semula, sementara itu, adalah fungsi yang kita menentukan 195 00:09:14,880 --> 00:09:18,730 yang mendapat dipanggil secara berulang dalam daripada utama setiap kali anda mengenai 196 00:09:18,730 --> 00:09:20,799 bersedia untuk mula mendengar untuk sambungan baru 197 00:09:20,799 --> 00:09:22,840 supaya kita sentiasa tahu keadaan pembolehubah kami 198 00:09:22,840 --> 00:09:24,870 dan supaya kita kena juga membebaskan apa-apa memori yang 199 00:09:24,870 --> 00:09:28,070 mungkin telah diperuntukkan untuk sambungan rangkaian sebelumnya. 200 00:09:28,070 --> 00:09:30,060 Sehingga seterusnya ialah bermula, fungsi yang kita menulis 201 00:09:30,060 --> 00:09:31,920 yang mengandungi keseluruhannya banyak kod rangkaian 202 00:09:31,920 --> 00:09:34,420 yang akhirnya bermula pelayan web. 203 00:09:34,420 --> 00:09:36,680 >> Sehingga lepas adalah fungsi dipanggil stop, yang 204 00:09:36,680 --> 00:09:38,770 tidak tepat itu, ia berhenti pelayan web. 205 00:09:38,770 --> 00:09:42,270 Tetapi pertama ia membebaskan apa-apa memori yang masih telah diperuntukkan. 206 00:09:42,270 --> 00:09:45,850 Tetapi ia akhirnya panggilan keluar tanpa kembali kawalan 207 00:09:45,850 --> 00:09:47,480 kepada fungsi utama kami. 208 00:09:47,480 --> 00:09:49,480 Akhirnya, salah satu daripada teknik yang paling penting 209 00:09:49,480 --> 00:09:52,680 apabila melaksanakan pelayan web ini adalah akan menjadi sedikit percubaan dan kesilapan, 210 00:09:52,680 --> 00:09:55,886 mempunyai satu pelayar tetingkap terbuka di sebelah kanan dan tetingkap terminal di 211 00:09:55,886 --> 00:09:57,760 kiri, konsol pelayan tetingkap, supaya anda 212 00:09:57,760 --> 00:10:00,420 boleh melihat mesej yang dipaparkan pada skrin. 213 00:10:00,420 --> 00:10:04,170 >> Tetapi lebih baik lagi akan menjadi satu pertiga tetingkap, tetingkap terminal kedua, 214 00:10:04,170 --> 00:10:07,135 di mana anda menggunakan Telnet, penggunaan bagi yang ditetapkan dalam spec. 215 00:10:07,135 --> 00:10:09,640 Dan Telnet hanya sangat program rangkaian mudah 216 00:10:09,640 --> 00:10:12,660 yang membolehkan anda untuk berpura-pura menjadi pelayar dalam satu tetingkap 217 00:10:12,660 --> 00:10:14,540 ketika bercakap kepada tetingkap yang lain. 218 00:10:14,540 --> 00:10:16,830 Dengan cara ini anda boleh melihat betul-betul perintah teks 219 00:10:16,830 --> 00:10:18,700 yang akan datang kembali dari pelayan untuk pelanggan 220 00:10:18,700 --> 00:10:20,810 tanpa perlu poking sekitar pemaju krom ini 221 00:10:20,810 --> 00:10:24,010 alat dalam cara lain antara muka clunkier. 222 00:10:24,010 --> 00:10:29,099