1 00:00:00,000 --> 00:00:09,647 2 00:00:09,647 --> 00:00:11,730 سپیکر: اب چلو ڈوبکی تقسیم کے کوڈ میں 3 00:00:11,730 --> 00:00:14,470 اور سیاق و سباق پر ایک نظر ڈالیں جس میں کوڈ کو آپ لکھتے ہیں 4 00:00:14,470 --> 00:00:15,780 آپریٹنگ ہونے جا رہا ہے. 5 00:00:15,780 --> 00:00:17,350 دن کے آخر میں، آپ کو نافذ کرنے جا رہے ہیں 6 00:00:17,350 --> 00:00:18,710 ویب سرور کے مکمل. 7 00:00:18,710 --> 00:00:20,460 لیکن ہم نے فراہم کی ہے کنکال کے ساتھ آپ 8 00:00:20,460 --> 00:00:24,090 کچھ فعالیت ہے کہ کوڈ، خاص طور پر نیٹ ورکنگ سے متعلق. 9 00:00:24,090 --> 00:00:25,390 چلو ایک نظر ڈالیں. 10 00:00:25,390 --> 00:00:27,560 >> یہاں سب سے اوپر کی طرف بلند اتنا فائل کا ٹولہ ہے 11 00:00:27,560 --> 00:00:30,020 خصوصیت میں میکرو ضروریات کو ٹیسٹ. 12 00:00:30,020 --> 00:00:33,570 اب اس سی، جس کے تحت صرف ایک خصوصیت ہے انسان کے صفحات میں سے ایک گروپ کے مطابق 13 00:00:33,570 --> 00:00:36,410 آپ میں سے کچھ کی وضاحت کرنے کے لئے ہے ان constants سچ ہو گی 14 00:00:36,410 --> 00:00:39,920 یا یہ کہ تو بھی خاص نمبرز بننا تم بعض افعال تک رسائی حاصل ہے. 15 00:00:39,920 --> 00:00:42,470 دوسری صورت میں وہ پہلے سے نہ سوچا کریں گے اور آپ کو رسائی حاصل نہیں کرے گا. 16 00:00:42,470 --> 00:00:45,340 تو میں نے راہ کی طرف سے اس نے کیا ہے کے انسان صفحات پڑھ. 17 00:00:45,340 --> 00:00:48,410 اب نیچے ذیل، میں 17 ذریعے لائنوں 15، ہم 18 00:00:48,410 --> 00:00:50,550 کا اعلان کر دیا حدود کی ایک مکمل جھوبڈ ہے. 19 00:00:50,550 --> 00:00:53,370 >> اور ہم ایک کی طرف سے ان ادھار ہے اپاچی بلایا مقبول ویب سرور. 20 00:00:53,370 --> 00:00:54,650 اور یہ صرف ہیں جا رہے ہیں کہ اعداد 21 00:00:54,650 --> 00:00:56,810 کل تعداد ٹوپی بائٹس کی کہ اجازت ہے 22 00:00:56,810 --> 00:01:01,930 HTTP درخواست کے لئے مختلف سیاق و سباق میں کہ ایک براؤزر مجھے بھیجنے کے لئے کی اجازت دی ہے. 23 00:01:01,930 --> 00:01:04,310 اگلا، ہم آکٹیٹ کی وضاحت. 24 00:01:04,310 --> 00:01:07,790 اب ایک آکٹیٹ ایک نفیس طریقہ ہے ایک بائٹ، یا آٹھ بٹس کہہ کے. 25 00:01:07,790 --> 00:01:10,720 پرانے ایک بائٹ میں بدل جاتا ہے ضروری نہیں کہ آٹھ بٹس تھا، 26 00:01:10,720 --> 00:01:12,339 تاکہ آکٹیٹ ہمیشہ آٹھ بٹیں ہے. 27 00:01:12,339 --> 00:01:14,880 تو اس صورت میں ہم اپنایا ہے کیا نیٹ ورکنگ میں عام ہے 28 00:01:14,880 --> 00:01:17,410 آٹھ بائٹس ایک آکٹیٹ بلا کی دنیا. 29 00:01:17,410 --> 00:01:21,840 >> یہاں میں آکٹیٹ گے کہ مخصوص ہے تا کہ زیادہ سے زیادہ عدالتی میں جیسے، 512 ہو 30 00:01:21,840 --> 00:01:24,170 ہم میں سے ایک گروپ پڑھا جب ایک وقت میں بائٹس، یہاں بھی، 31 00:01:24,170 --> 00:01:27,390 ہم ایک پڑھنے جا رہے ہیں ایک وقت میں آکٹیٹ کے گروپ. 32 00:01:27,390 --> 00:01:28,922 ہیڈر فائلوں کی ایک پوری چڑھانے اگلے. 33 00:01:28,922 --> 00:01:30,255 میں کس طرح ان میں شامل کرنے کے لئے پتہ چلا؟ 34 00:01:30,255 --> 00:01:32,730 ویسے میں نے صرف انسان کو پڑھا کے افعال میں سے ایک بڑی تعداد کے لئے صفحات 35 00:01:32,730 --> 00:01:35,620 ہم اس تقسیم میں استعمال کریں گے کوڈ اور ہیں میں شامل ہیں 36 00:01:35,620 --> 00:01:37,390 میں نے کرنے کی ہدایت کی تھی. 37 00:01:37,390 --> 00:01:39,090 >> اور اب ہم ایک ڈیٹا کی قسم ہے. 38 00:01:39,090 --> 00:01:41,470 ہم نے ایک چار ہونا ایک آکٹیٹ اعلان کیا ہے. 39 00:01:41,470 --> 00:01:44,040 اور ہم اس بات ہے کہ بعد میں دیکھیں گے کوڈ کے دوران استعمال کیا جاتا ہے. 40 00:01:44,040 --> 00:01:45,670 اور ہم نے اعلان کر دیا ہے ایک prototypes کی مکمل جھوبڈ، 41 00:01:45,670 --> 00:01:47,961 اور ہم ذریعے تیزی سے چل گے ان کے افعال میں سے ہر ایک. 42 00:01:47,961 --> 00:01:50,400 آخر میں، اور شاید سب سے زیادہ میں رکھنا اہم 43 00:01:50,400 --> 00:01:52,520 اس مرحلے میں برا کہانی، یہ ہے کہ وہاں 44 00:01:52,520 --> 00:01:54,520 حقیقت میں، ایک پوری ہو عالمی متغیر کے گروپ 45 00:01:54,520 --> 00:02:00,430 فائل کے سب سے اوپر، جڑ، CFD، ایس ایف ڈی، درخواست، فائل اور جسم. 46 00:02:00,430 --> 00:02:03,960 >> اب عام طور پر، بہت سے عالمی سطح پر استعمال کر رہے ہیں متغیر، یا بالکل عالمی متغیر، 47 00:02:03,960 --> 00:02:05,280 واپس پریکٹس نہیں ہے. 48 00:02:05,280 --> 00:02:09,090 لیکن یہ ہم بھی ایک استعمال کر رہے ہیں باہر کر دیتا ہے تکنیک نامی سگنل ہینڈلنگ بعد میں 49 00:02:09,090 --> 00:02:11,930 کرنے کی اجازت دیتا ہے جس کے کوڈ، میں صارف کچھ مار دیتی ہے جب پتہ لگانے کے 50 00:02:11,930 --> 00:02:15,080 CTRL C اور نیچے بند کی طرح gracefully کو سرور. 51 00:02:15,080 --> 00:02:18,240 اور حکم میں gracefully ایسا کرنے کے لئے اور اصل میں مفت میموری اپ، 52 00:02:18,240 --> 00:02:20,800 ہم تک رسائی حاصل کرنے کی ضرورت ہے یہ عالمی متغیر. 53 00:02:20,800 --> 00:02:24,510 >> اور اب کی مین پر ایک نظر ڈالیں، جس اس پروگرام کے مکمل طور پر چلاتے ہیں. 54 00:02:24,510 --> 00:02:27,720 سب سے پہلے، یہاں سب سے اوپر ہم ایک خرابی تعداد میں متغیر ہے 55 00:02:27,720 --> 00:02:29,570 کہ نہیں ظاہر ہوتا ہے ایک قسم ہے، لیکن ہے کہ 56 00:02:29,570 --> 00:02:31,500 یہ اصل میں ہے کیونکہ نامی ایک فائل میں وضاحت کی گئی 57 00:02:31,500 --> 00:02:34,800 غلطی کو errno.h جس میں اعلی اپ شامل ہے. 58 00:02:34,800 --> 00:02:38,780 آپ اصل میں errno انسان ایسا کرتے ہیں اس بات کے لئے تعریف دیکھیں، 59 00:02:38,780 --> 00:02:41,230 آپ کو یہ ایک ہے کہ نظر آئے گا خصوصی عالمی متغیر ہے کہ 60 00:02:41,230 --> 00:02:43,350 ایک مکمل جھوبڈ کی طرف سے مقرر کیا گیا ہے افعال میں لکھا نہیں 61 00:02:43,350 --> 00:02:48,730 ہماری طرف سے، لیکن لینکس کے مصنفین کی طرف سے اور دوسرے نظام اصل مقرر کرنے کے لئے 62 00:02:48,730 --> 00:02:52,400 اس متغیر جب کچھ کے لئے ایک نمبر غلط ہوتا ہے کہ آپ عالمی سطح پر کر سکتے ہیں تاکہ 63 00:02:52,400 --> 00:02:54,830 غلط جانے کیا کیا پتہ لگانے. 64 00:02:54,830 --> 00:02:58,540 >> اب ذیل میں نیچے آپ کو ایک نئی نظر آئے گا ٹیکنالوجی کا شاید، getopt کا استعمال کرتے ہوئے 65 00:02:58,540 --> 00:03:01,790 تصریف کمانڈ کی مدد کرتا ہے کہ ایک تقریب لائن کے دلائل ہم نہیں کرتے ہیں تاکہ 66 00:03:01,790 --> 00:03:05,540 figuring ہے برباد کر وقت کی زحمت کی ضرورت باہر 8080 کی طرح کچھ تجزیہ کرنے کے لئے کس طرح، 67 00:03:05,540 --> 00:03:08,350 یا ڈیش پی، یا ڈیش ح مدد حاصل کرنے کے. 68 00:03:08,350 --> 00:03:10,300 getopt بنیادی طور پر ہمارے لئے ایسا کرتا ہے. 69 00:03:10,300 --> 00:03:11,750 زیادہ کے لئے آدمی کا صفحہ ملاحظہ کریں. 70 00:03:11,750 --> 00:03:13,960 >> اگلا، ہم غلطی کا سا کر بات کو یقینی بنانا پرکھنے 71 00:03:13,960 --> 00:03:17,420 پورٹ نمبر اندر اندر ہے کہ رپورٹ میں مخصوص رینج. 72 00:03:17,420 --> 00:03:20,240 اگلا، ہم تقریب ایک فون دیکھیں جن کی تعریف، ہم کریں گے شروع کر دیں 73 00:03:20,240 --> 00:03:24,040 ایک لمحے میں میں نظر آتے ہیں، اور اس کے نام کے طور پر اس ویب سرور شروع ہوتا ہے، پتہ چلتا ہے. 74 00:03:24,040 --> 00:03:26,960 یہاں ہم ایک تقریب ایک فون ہے کہتے ہیں جس کو بلایا سگنل، 75 00:03:26,960 --> 00:03:30,750 اور اگر تم سے کنٹرول سی سنتے ہیں صارف کی بورڈ، آگے بڑھو اور کال 76 00:03:30,750 --> 00:03:34,650 جا رہا ہے کہ ایک تقریب میں بلایا ہینڈلر بالآخر صاف چیزوں کو اور کو روکنے کے 77 00:03:34,650 --> 00:03:35,500 سرور. 78 00:03:35,500 --> 00:03:39,470 >> اس کے نیچے ایک ہو سکتا ہے کیا ہے لامحدود لوپ، پہلی سطر جن میں 79 00:03:39,470 --> 00:03:41,660 مؤثر طریقے سے ایک کال ہے کے نام سے ایک تقریب میں 80 00:03:41,660 --> 00:03:45,110 خود کو ہم جس میں، ری سیٹ ترتیب میں بعد میں عمل درآمد 81 00:03:45,110 --> 00:03:47,470 ہمارے عالمی ریاستوں میں سے کچھ کو آزاد کرنا. 82 00:03:47,470 --> 00:03:50,480 اس کے بعد کی ایک سطر ہے کوڈ اس مشروط 83 00:03:50,480 --> 00:03:52,576 واپسی کی جانچ پڑتال کر رہا ہے کنیکٹیڈ کی قدر. 84 00:03:52,576 --> 00:03:55,700 ایک ودیئ کی طرح اب مربوط دکھائی دیتی ہے، صحیح یا غلط واپس کہ کچھ اور. 85 00:03:55,700 --> 00:03:58,040 اور یہ کرتا ہے، لیکن وہاں ہے کنیکٹیڈ میں کچھ خاص 86 00:03:58,040 --> 00:03:59,960 کہ میں یہ ایک مسدود فون ہے. 87 00:03:59,960 --> 00:04:03,180 یہ وہاں بیٹھ کر انتظار کریں گے ایک صارف کے براؤزر تک 88 00:04:03,180 --> 00:04:05,860 اس ویب سے رابطہ قائم کرنے کی کوشش کرتا ہے سرور اور صرف اس صورت یہ ہو گا 89 00:04:05,860 --> 00:04:10,160 ہم آگے بڑھنے، تا کہ صحیح یا غلط واپس آ جائیں اس بیان اگر اندر کرنے کے لئے. 90 00:04:10,160 --> 00:04:13,870 >> ایک بار وہاں، ایک کے لئے اس تقریب کو نوٹس ہم نے لکھا، جس توڑتے نامی تقریب،، 91 00:04:13,870 --> 00:04:17,230 جس میں تمام، آکٹیٹ کے تمام یہ parses ایک براؤزر کی طرف سے آ بائٹس کی 92 00:04:17,230 --> 00:04:21,010 سرور سے، تاکہ ہم حوالے کر سکتے ہیں ایک کے لئے آپ کو واپس بالآخر ایک قدر 93 00:04:21,010 --> 00:04:24,420 ان لوگوں کو عالمی متغیرات میں سے ہے کہ اسٹورز صرف میں بائٹس کی تمام 94 00:04:24,420 --> 00:04:26,630 اس کا ہیڈر درخواست، نہ جسم 95 00:04:26,630 --> 00:04:28,920 یہ اصل میں ایک جسم وہاں تھے تو. 96 00:04:28,920 --> 00:04:32,980 >> اب ہم کرنے کے لئے شروع نیچے سے نیچے نکالنے کے لئے ان لوگوں ہیڈر تجزیہ 97 00:04:32,980 --> 00:04:35,490 معلومات کا ایک اپسمچی ہم کے بارے میں پرواہ ہے. 98 00:04:35,490 --> 00:04:37,740 خاص طور پر، فی تصریح، ہم سب سے پہلے 99 00:04:37,740 --> 00:04:40,580 ہے جو، لائن کی درخواست کرنے کے لئے کرنا چاہتا تھا صرف یہ ہے کہ بہت پہلے کہ لائن 100 00:04:40,580 --> 00:04:45,710 امید ہو جیسے کچھ کا کہنا ہے کہ سلیش یا کسی راستے اور پھر HTTP 1.1. 101 00:04:45,710 --> 00:04:48,150 ہم اس استعارہ استعمال کر رہے ہیں ایک ٹیبل میں انجکشن کے 102 00:04:48,150 --> 00:04:50,370 خاص طور پر کے لئے نظر کرنا حروف یا پتوں. 103 00:04:50,370 --> 00:04:53,120 اور یقینا، کی ایک بڑی تعداد موجود ہے ہمارے تقسیم کے کوڈ میں افعال 104 00:04:53,120 --> 00:04:56,930 آپ کہ، بھی، مفید ہو سکتا ہے خاص طور پر اقدار کے لئے تلاش کر جب. 105 00:04:56,930 --> 00:05:00,630 >> آخر میں، ہم ان بائٹس کو کاپی ایک متغیر بلایا لائن میں، 106 00:05:00,630 --> 00:05:03,510 جس کے بھی، ہم نے، کو نوٹس اسٹیک پر مختص 107 00:05:03,510 --> 00:05:05,890 ایک متحرک درجے کی صف کی راہ کی طرف سے. 108 00:05:05,890 --> 00:05:08,350 اور ہم نے جان بوجھ کر کوشش کر رہے ہیں malloc بلا سے بچنے کے لئے 109 00:05:08,350 --> 00:05:11,100 پھر کیونکہ، کیونکہ کنٹرول C ہونے کا 110 00:05:11,100 --> 00:05:14,630 اس پروگرام کی ایک ممکنہ نمایاں کریں، ہم اچانک اس کوڈ ہے نہیں کرنا چاہتا 111 00:05:14,630 --> 00:05:17,479 صارف کو مارنے کی طرف سے رکاوٹ پیدا کنٹرول C، جس کے نتیجے میں 112 00:05:17,479 --> 00:05:20,270 میں نے ایک موقع نہیں ہو سکتا ہے یہ ہے کہ مفت میں کچھ کے لئے میں نے malloced کر دیا ہے. 113 00:05:20,270 --> 00:05:23,660 تو میں نے کے طور پر زیادہ استعمال کرنے کی کوشش کر رہا ہوں اسٹیک کے میں یہاں کر سکتے ہیں ہے. 114 00:05:23,660 --> 00:05:26,040 >> اگلے ڈاس کرنے کے پورے گچرچھی، اپ. 115 00:05:26,040 --> 00:05:28,930 تصریح بیان کریں گے یہاں توقع ہے بالکل وہی جو پر، 116 00:05:28,930 --> 00:05:31,800 لیکن تبصرے آپ کو دے کیا میں سے ایک اشارہ آگے جھوٹ. 117 00:05:31,800 --> 00:05:33,830 آپ کے لئے سب سے پہلے ضرورت درخواست لائن کی توثیق 118 00:05:33,830 --> 00:05:37,760 اور اس طرح لگتا ہے کہ بات کو یقینی بنانے کے وضاحتیں، تو بات کرنے کی، گرائمر 119 00:05:37,760 --> 00:05:38,541 یہ ہونا چاہئے کہتے ہیں. 120 00:05:38,541 --> 00:05:41,290 اس کے بعد آپ کچھ نکالنے کے لئے کی ضرورت سامان، سوال نامی 121 00:05:41,290 --> 00:05:44,200 ایک سوال کے نشان کے بعد، جیسے ہم اپنے گوگل مثال کے ساتھ دیکھا 122 00:05:44,200 --> 00:05:46,320 ایک ایچ ڈی پیرامیٹر میں گزر میں. 123 00:05:46,320 --> 00:05:49,050 ہم نے اس وقت ایک دوسرے کے ساتھ سلسلہ بندی ویب سرور کی جڑ 124 00:05:49,050 --> 00:05:52,520 میں ہے کہ راستے کے ساتھ اس کی درخواست پہلی لائن 125 00:05:52,520 --> 00:05:56,010 اور کا مکمل راستہ کی تشکیل فائل ہم نے کے لئے نظر کرنا چاہتے ہیں. 126 00:05:56,010 --> 00:06:00,300 >> اس کے بعد، ہم اس بات کو یقینی بنانے کے لئے جا رہے ہیں وہ فائل موجود ہے اور پڑھنے کے قابل ہے. 127 00:06:00,300 --> 00:06:05,100 اور پھر ہم کو نکالنے کے لئے جا رہے ہیں اس کے فائل چڑھانے کی کوشش، ایچ ٹی ایم ایل یا پی ایچ پی، 128 00:06:05,100 --> 00:06:09,920 یا کم سے ہے کہ کچھ ایسی ملازمت میں توسیع درخواست کی سٹرنگ کے اختتام. 129 00:06:09,920 --> 00:06:11,940 اپ اگلے ایک پوری ہے کوڈ کا جتھا ہم نے لکھا 130 00:06:11,940 --> 00:06:15,800 دراصل پی ایچ پی پیدا کرنے کے لئے آپ کے لئے مواد پیدا. 131 00:06:15,800 --> 00:06:18,010 ایک مختصر میں، اس خفیہ نام میں لیتا 132 00:06:18,010 --> 00:06:20,250 فائل کی آپ پی ایچ پی کی تشریح کرنا چاہتا ہوں. 133 00:06:20,250 --> 00:06:24,630 ہم نامی کسی چیز سے اسے منظور پی ایچ پی کی ترجمان کی میں ایک پائپ. 134 00:06:24,630 --> 00:06:28,060 اگرچہ کے طور پر اس کے جواب واپس حاصل جواب ایک فائل خود تھے. 135 00:06:28,060 --> 00:06:32,110 اور پھر ہم اس فائل کا پر iterate ایک کے بفر میں ان سب کو ھیںچ بائٹس، 136 00:06:32,110 --> 00:06:34,180 ہم بالآخر یہ کر سکتے ہیں، تاکہ انہیں باہر پرنٹ. 137 00:06:34,180 --> 00:06:37,230 >> ان میں سے بے شک، تمام dprintf لئے یہاں بلاتا ہے 138 00:06:37,230 --> 00:06:40,110 ہم سے کچھ پرنٹ کرنے کی اجازت دیتا ہے ایک فائل ویورنک، کہا جاتا ہے جس 139 00:06:40,110 --> 00:06:42,350 صرف ایک عدد صحیح ہے کہ ایک فائل کی نمائندگی کرتا ہے. 140 00:06:42,350 --> 00:06:45,360 ، روح میں بہت ہی ہے لیکن ایک فائل سے بنیادی طور پر مختلف 141 00:06:45,360 --> 00:06:46,620 سٹار پوائنٹر. 142 00:06:46,620 --> 00:06:50,260 آپ کی طرح نحو استعمال کر سکتے ہیں کہ کس طرح محسوس printf کے یہاں میں متحرک کر سکتے ہیں، تاکہ 143 00:06:50,260 --> 00:06:54,000 لمبائی کی طرح کچھ داخل ایک HTTP ہیڈر کی قدر کے لئے 144 00:06:54,000 --> 00:06:55,270 مواد کی طوالت سے ملاقات کی. 145 00:06:55,270 --> 00:06:57,990 اور بالآخر میں نے استعمال کیا تقریب اصل میں لکھنے کے لئے حق 146 00:06:57,990 --> 00:07:00,040 درخواست کے جسم. 147 00:07:00,040 --> 00:07:03,750 >> بدقسمتی سے، ہم صرف لاگو متحرک طور پر کے لئے حمایت 148 00:07:03,750 --> 00:07:05,350 پیدا کی پی ایچ پی فائلوں. 149 00:07:05,350 --> 00:07:08,520 ہم کے لئے حمایت کا نفاذ نہیں کیا جامد والی gifs فائلوں کی طرح، اور JPEGs، 150 00:07:08,520 --> 00:07:10,660 اور CSS اور HTML فائلوں. 151 00:07:10,660 --> 00:07:14,450 کہ، بدقسمتی سے، آپ کے لئے چھوڑ دیا جاتا ہے کلائنٹ مقصد کا جواب دینے کے 152 00:07:14,450 --> 00:07:15,090 ایسا کرنے کے لئے. 153 00:07:15,090 --> 00:07:20,050 وہاں میں تو کیا تم نہیں ہے کہ تلاش کر لیں گے نہ کہ بلاک کے اندر اندر زیادہ سے زیادہ پریرتا، 154 00:07:20,050 --> 00:07:23,520 لیکن کس طرح میں اپ کو تھوڑا سا زیادہ ہیں اگر آپ ہم، پی ایچ پی کوڈ کی ترجمانی بارے میں چلا گیا 155 00:07:23,520 --> 00:07:25,520 کام کرتا ہے آپ استعمال کریں گے تھوڑا سا مختلف ہیں. 156 00:07:25,520 --> 00:07:27,561 >> اصل میں، آپ قرضے لے سکتا ہوں فعالیت کے کچھ 157 00:07:27,561 --> 00:07:29,620 شاید عدالتی سے مسئلہ سیٹ، کیونکہ 158 00:07:29,620 --> 00:07:32,860 دن کے آخر میں تم سب کو کرنے کی ضرورت ہے آپ کو پتہ ہے ایک بار یہاں کیا ہے کھلا ہوا جو فائل 159 00:07:32,860 --> 00:07:35,690 آپ کو پتہ ہے ایک بار اور یہ نام نہاد ہے MIME قسم یا مواد کی قسم، 160 00:07:35,690 --> 00:07:39,040 آپ کو ان بائٹس میں پڑھنے کی ضرورت ہے اور کسی نہ کسی طرح باہر انہیں واپس تھوکنے. 161 00:07:39,040 --> 00:07:41,190 >> اس کی اور اب ایک دورے فائل کا دیگر افعال. 162 00:07:41,190 --> 00:07:43,820 پہلی منسلک ہے اپ، جس میں صرف سچ کی واپسی 163 00:07:43,820 --> 00:07:47,350 جب یہ آخر میں ایک سنتا ہے کسی صارف سے کنکشن. 164 00:07:47,350 --> 00:07:48,786 اپ اگلے غلطی ہے. 165 00:07:48,786 --> 00:07:52,296 میں خرابی، اس دوران، کے طور پر ایک تقریب سے ہم مختلف 400 سب کو ہینڈل کرنے میں لکھا تھا 166 00:07:52,296 --> 00:07:55,360 اور 500 HTTP حیثیت آپ چاہتے ہیں کہ کوڈ 167 00:07:55,360 --> 00:07:58,500 صارف کو واپس بھیجنے کے لئے، ایک معیاری پیغام کے ساتھ. 168 00:07:58,500 --> 00:08:01,950 >> اگلا، دوسرا اپ لوڈ کی ہے، ایک خاص طور پر جس کا مقصد زندگی میں گوشت کی تقریب، 169 00:08:01,950 --> 00:08:06,920 ایک فائل ستارہ سے پڑھنے کے لئے جاتا ہے پوائنٹر ایک عالمی بفر میں ایک فائل کے مواد 170 00:08:06,920 --> 00:08:09,000 ہم عالمی سطح پر قرار دیا ہے کہ [مندرجہ بالا؟ اہم. ؟] 171 00:08:09,000 --> 00:08:12,649 اس وجہ سے ہم تھوڑا سا پیچیدہ ہے فائل سے بائٹس پڑھنے کے لئے ہے 172 00:08:12,649 --> 00:08:14,690 لیکن ہر iteration پر چیک کریں ہم نے پہلے کیا ہے یا 173 00:08:14,690 --> 00:08:17,600 فائل کے آخر مارا یا کچھ اور غلط چلا گیا ہے. 174 00:08:17,600 --> 00:08:21,210 اور ہم اس بات کو یقینی بنانا realloc استعمال جو کچھ بھی ہم استعمال کر رہے ہیں بفر بڑھ رہی ہے 175 00:08:21,210 --> 00:08:24,440 اور بڑھتی ہوئی ہے اور ہمیشہ سے بڑھتی ہوئی اور بائٹس کی تعداد میں پہلے سے مقیم 176 00:08:24,440 --> 00:08:25,675 ہم وہاں میں فٹ کرنے کی ضرورت ہے. 177 00:08:25,675 --> 00:08:27,550 ہینڈلر، اس دوران، ہے ہو جاتا ہے کہ تقریب 178 00:08:27,550 --> 00:08:30,630 ہونے کی راہ کی طرف بلایا ایک سگنل پر کنٹرول C رجسٹرڈ 179 00:08:30,630 --> 00:08:32,140 ہم تقطیع کرنا چاہتے ہیں کہ. 180 00:08:32,140 --> 00:08:34,070 ہینڈلر میں یہاں نوٹس یہ کہ آخر 181 00:08:34,070 --> 00:08:36,780 کالز، کو روکنے جو کہ کورس کی ویب سرور بند ہو جاتا ہے. 182 00:08:36,780 --> 00:08:39,750 اور بدقسمتی سے، لک اپ لاگو نہیں ہوتا ہے. 183 00:08:39,750 --> 00:08:41,940 روح میں، یہ ایک ہے کافی سادہ تقریب. 184 00:08:41,940 --> 00:08:44,900 ایک فائل توسیع دی گئی، اس کی ضرورت ہے یہ MIME نام نہاد کی واپسی سے 185 00:08:44,900 --> 00:08:46,320 قسم یا مواد کی قسم. 186 00:08:46,320 --> 00:08:49,260 اور ہم تفصیلات میں وضاحت کہ تعریفیں ہونا ضروری ہے کیا. 187 00:08:49,260 --> 00:08:52,330 لیکن آپ کو ترجمہ کرنے کی ضرورت بالآخر C کوڈ کے لئے اس کا. 188 00:08:52,330 --> 00:08:56,490 >> اگلا، دوسرا اپ ہماری اسی طرح گوشت تقریب ہے زندگی میں جس کا مقصد، تصریف بلایا 189 00:08:56,490 --> 00:08:59,350 نہیں ایک فائل سے، پڑھنے کے لئے ہے، لیکن ایک نیٹ ورک کنکشن سے. 190 00:08:59,350 --> 00:09:03,510 خاص طور پر، پڑھنے اور تصریف ایک براؤزر سے آیا ہے کہ HTTP درخواست 191 00:09:03,510 --> 00:09:05,940 ہیں تاکہ سرور سے بالآخر ہم تجزیہ کر سکتے ہیں 192 00:09:05,940 --> 00:09:09,530 درخواست میں نے صرف ہیڈرز میں لائن اور آپ کے لئے ان لوگوں کو واپس 193 00:09:09,530 --> 00:09:12,720 ایک عالمی بفر کی راہ کی طرف کہ ہم [مندرجہ بالا اعلان کر دیا؟ اہم. ؟] 194 00:09:12,720 --> 00:09:14,880 >> دریں اثنا، ایک ہے، ری سیٹ کر دیں ہم اس کی وضاحت اس تقریب 195 00:09:14,880 --> 00:09:18,730 کہ میں iteratively اندر بلایا جاتا ہے مرکزی ہر بار میں سے آپ کے بارے میں ہیں 196 00:09:18,730 --> 00:09:20,799 سننا، شروع کرنے کے لئے تیار ایک نئے کنکشن کے لئے 197 00:09:20,799 --> 00:09:22,840 ہم ہمیشہ معلوم ہے تاکہ ہمارے متغیر کی ریاست 198 00:09:22,840 --> 00:09:24,870 اور تاکہ ہم بھی ہے کسی بھی میموری آزاد ہے 199 00:09:24,870 --> 00:09:28,070 کے لئے مختص کیا گیا ہے ہو سکتا ہے ایک پچھلے نیٹ ورک کنکشن. 200 00:09:28,070 --> 00:09:30,060 اگلا، دوسرا اپ شروع کر دیں، ہم نے لکھا ہے کہ تقریب 201 00:09:30,060 --> 00:09:31,920 کہ ایک پوری مشتمل نیٹ ورکنگ کے کوڈ کا بہت کچھ 202 00:09:31,920 --> 00:09:34,420 کہ آخر میں ویب سرور شروع ہوتا ہے. 203 00:09:34,420 --> 00:09:36,680 >> آخری اپ فنکشن ہے کہا جاتا سٹاپ، جس میں 204 00:09:36,680 --> 00:09:38,770 بالکل اس کرتا ہے، اسے ویب سرور بند ہو جاتا ہے. 205 00:09:38,770 --> 00:09:42,270 لیکن اس سے پہلے یہ کسی بھی میموری آزاد کہ اب بھی مختص کیا گیا ہے. 206 00:09:42,270 --> 00:09:45,850 لیکن یہ آخر وہاں سے نکلنے بلاتا ہے اس سے بھی کنٹرول کے واپس لوٹنے کے بغیر 207 00:09:45,850 --> 00:09:47,480 ہمارے مرکزی تقریب. 208 00:09:47,480 --> 00:09:49,480 آخر میں، میں سے ایک سب سے زیادہ اہم ٹیکنالوجی 209 00:09:49,480 --> 00:09:52,680 پر عمل درآمد کرتے وقت یہ ویب سرور ہے مقدمے کی سماعت اور غلطی کا تھوڑا سا ہونے جا رہا، 210 00:09:52,680 --> 00:09:55,886 ایک براؤزر ونڈو کھلے رکھنے میں دائیں اور ایک ٹرمینل ونڈو میں 211 00:09:55,886 --> 00:09:57,760 بائیں، سرورز کنسول کھڑکی، تاکہ آپ کو 212 00:09:57,760 --> 00:10:00,420 ایسے پیغامات کو دیکھ سکتے ہیں سکرین پر دکھایا جا رہا ہے. 213 00:10:00,420 --> 00:10:04,170 >> لیکن بہتر ابھی تک ایک تہائی ہو گی کھڑکی، ایک دوسرے ٹرمنل ونڈو، 214 00:10:04,170 --> 00:10:07,135 جس میں آپ نے ٹیل نیت، استعمال استعمال کرتے ہیں جس کے لئے رپورٹ میں تجویز کیا جاتا ہے. 215 00:10:07,135 --> 00:10:09,640 اور ٹیل نیت صرف ایک بہت ہے سادہ نیٹ ورک پروگرام 216 00:10:09,640 --> 00:10:12,660 یہ کہ آپ کا ڈرامہ کرنے کی اجازت دیتا ہے ایک ونڈو میں ایک براؤزر ہونا 217 00:10:12,660 --> 00:10:14,540 دوسرے ونڈو سے گفتگو کرتے ہوئے. 218 00:10:14,540 --> 00:10:16,830 جیسا کہ آپ دیکھ سکتے ہیں اس طرح بالکل وہی ٹیکسٹ حکم 219 00:10:16,830 --> 00:10:18,700 اس پر واپس آ رہے ہیں سرور سے کلائنٹ کو 220 00:10:18,700 --> 00:10:20,810 poking ہے کرنے کے لئے بغیر کروم کے ڈویلپر کے ارد گرد 221 00:10:20,810 --> 00:10:24,010 ایک دوسری صورت میں، فورم کے اوزار clunkier انٹرفیس. 222 00:10:24,010 --> 00:10:29,099