Esp به عنوان سرور و ارسال کدهای html برای browser

استاد این دستور خیلی مبهم هست.چطور با ریختن محتویات بافر available توی متغیر client میشه سرور رو مثل یک کلاینت در نظر گرفت و همون دستورات رو واسش استفاده کرد.همینطور اینو قبول کنیم تا وقتی که با c کد میزنیم و دقیقا مشخصه چی میگذره توی برنامه؟این دستورات آردوینو خیلی مبهم هستن کلا نمیشه دقیق فهمید داره چه اتفاقی میفته.
و اینکه اینجا چرا شرط حلقه while برعکس مثال های قبل با client.available هم or نشد؟اینجا هم ی سری packet داریم که بینشون دنبال یک newline هستیم.اون اتفاقی که گفتین ممکنه connection قطع بشه ولی همه packet ها خونده نشده باشن اینجا امکان رخ دادنش نیست؟
2

سلام دوست عزیز، قبول دارم که کدهای C به دلیل شی گرا نبودن زبان، شفاف تر هستن. آردوینو از C++ استفاده میکنه که object oriented هست که البته خوبی ها و بدی های خودش رو داره و طرفداران بسیار زیادی هم داره.
شما وقتی که یک شی رو میسازید، در اینجا اون شی اسمش client هست، این شی یک سری خواص داره. این خواص درواقع میشه کارایی که اون شی بلده. حالا این کارایی که بلده یا دارن به شما اطلاعاتی رو میدن، یا دارن واقعا کاری رو انجام میدن. به اینها method و property میگیم. در اکثر زبان های شی گرا، وقتی که بخواید یک method یا property رو فراخوانی کنید، اول اسم شی یا همون object رو مینویسید و بعدش یک نقطه (dot) میذارید و بعدش اسم method و یا property رو مینویسید.
در اینجا اسم object ما client هست. (خودمون این اسم رو روش گذاشتیم و از نوع WiFiClient هست که در بالاتر خودمون تعریف کردیم. یعنی این object از یک class به اسم WiFiClient ساخته شده یا اصطلاحا instance گرفته شده)
حالا این client یکی از کارایی که بلده این هست که به ما بگه وصل شده یا نه که اسمش connected هست و در جواب به ما true یا false میده. پس client.connected() چک میکنه که وصل شده یا نه.
اون client.available() هم چک میکنه ببینه که آیا در بافر ورودی، کاراکتری مونده که ما هنوز نخوندیمش یا نه؟

در واقع زبان های شی گرا با اینکه در ابتدا ممکنه کمی گیج کننده به نظر بیان، با کپسوله کردن مفاهیم پیچیده تر، کد رو تا حد خوبی خوانا و ساده میکنن.
در مورد اینکه چرا شرط available رو در کنار while نیاوردیم هم باید بگم زیاد فرقی نداره. میشه هردو کار رو کرد. درواقع این کد وقتی اجرا میشه که هم connected() و هم available() برابر true باشن. بنابراین میتونید این دو رو با هم and کنید. (شما گفتید چرا or نکردیم که اشتباه هست. باید and کنید چون هر دو شرط باید برقرار باشن)