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 আপনি কিছু সংজ্ঞায়িত আছে এই ধ্রুবক সত্য হতে পারে 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 তাই আমি উপায় দ্বারা এই কাজ করেছি এর man পৃষ্ঠা পড়া. 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 এবং আমরা ঘোষণা করেছি একটি এগুলির নমুনা আভা, 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 ফাইল শীর্ষে, root পরিচয়ে, সিএফডি, SFD, অনুরোধ, ফাইল এবং শরীর. 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 সি এবং শাট ডাউন মত 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 আরো জন্য man পৃষ্ঠা দেখুন. 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 যা সব, অক্টেট সব পার্স একটি ব্রাউজার থেকে আসছে বাইট 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 কারণ আবার, কারণ কন্ট্রোল সি হচ্ছে 110 00:05:11,100 --> 00:05:14,630 এই প্রোগ্রামের একটি সম্ভাব্য বৈশিষ্ট্য, আমরা হঠাৎ এই কোড আছে না চান 111 00:05:14,630 --> 00:05:17,479 ব্যবহারকারী আঘাত দ্বারা বাধাপ্রাপ্ত কন্ট্রোল সি, যার ফলে 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 একটি প্রশ্ন চিহ্ন পর, মত আমরা আমাদের Google উদাহরণ দিয়ে দেখেছি 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 এবং তারপর আমরা যে ফাইল এর উপর বারবার এক বাফার মধ্যে তাদের সব কাছে বাইট, 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 কিন্তু প্রতিটি পুনরাবৃত্তির পরীক্ষা ইতিমধ্যে আমরা করেছি কিনা 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 থাকার উপায় দ্বারা বলা একটি সংকেত হিসাবে কন্ট্রোল সি নিবন্ধিত 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 একটি ফাইল এক্সটেনশন দেওয়া, এটা প্রয়োজন এটা এমআইএমই তথাকথিত এর ফিরে 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 কিন্তু আপনি অনুবাদ করতে হবে শেষ পর্যন্ত গ কোড থেকে এটি. 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 খোঁচা করেও ক্রোম এর ডেভেলপার প্রায় 221 00:10:20,810 --> 00:10:24,010 একটি অন্যথায় সরঞ্জাম তোরে আমি খাইছি ইন্টারফেস. 222 00:10:24,010 --> 00:10:29,099