This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5❤🔥1🥰1
عجب پخت و پزی کرده تهی با پیشرو
YouTube
Tohi & Pishro - JOORAB 🧦 تهى و پيشرو - جوراب
🧦 🧦🧦🧦🧦🧦🧦🧦🧦🧦🧦🧦🧦🧦
TOHI & PISHRO - JOORAB
Lyrics & Music & Beat: TOHI
Second verse lyrics by Reza Pishro
Video Visuals by Tohi’s Team
Spotify 🔗 https://open.spotify.com/artist/7pBXdJN9S9N9nNifjPixET
Youtube Music 🔗 https://music.youtube.com/channel/UC7gWCU…
TOHI & PISHRO - JOORAB
Lyrics & Music & Beat: TOHI
Second verse lyrics by Reza Pishro
Video Visuals by Tohi’s Team
Spotify 🔗 https://open.spotify.com/artist/7pBXdJN9S9N9nNifjPixET
Youtube Music 🔗 https://music.youtube.com/channel/UC7gWCU…
❤2🔥1
Forwarded from امیرحسین پناهےفر
چیله بایرامیز موبارک اولسون 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9😁2🔥1
بیشتر چیز هایی که امروز به اسم network programming میشناسیم، ریشه شون برمیگرده به 4.2BSD جایی که برای اولین بار شبکه به عنوان یک مفهوم خیلی آشنا دیده شد. ایده این بود که اگه بتونی با فایل حرف بزنی، باید بتونی با شبکه هم دقیقاً به همون شکل حرف بزنی. همین نگاه ساده باعث شد read و write بشن هسته ارتباطات شبکه ای در یونیکس.
همه چیز از ()socket شروع میشه این فراخوانی در واقع هیچ ارتباطی رو برقرار نمیکنه، فقط از کرنل میخوای یه اندپوینت خام بهت بده. چیزی شبیه باز کردن یک فایل، با این تفاوت که هنوز نه آدرسی داره و نه مقصدی. فقط یه فایل دیسکریپتور تحویل میگیری که قراره بعدا معنای شبکهای پیدا کنه.
بعد از اون باید به این اندپوینت هویت بدی. اینجاست که ساختار sockaddr_in میاد وسط وقتی میگی IPv4 هست، پورت 8081 رو میخوام و روی همه اینترفیس ها گوش بده، در واقع داری به کرنل میگی این فایل قراره نماینده کدوم نقطه از شبکه باشه. با ()bind این هویت به سوکت چسبونده میشه. هنوز هیچ ارتباطی وجود نداره، فقط آدرس رزرو شده.
تا اینجا سوکت فقط میدونه کیه، نه اینکه چه کاری باید بکنه. ()listen دقیقاً همین جا معنی پیدا میکنه با این فراخوانی، سوکت از حالت عادی خارج میشه و وارد حالت گوش دادن میشه. یعنی کرنل شروع میکنه به گرفتن SYN ها، صف اتصال درست میکنه و آماده میشه برای اینکه کسی واقعاً وصل بشه. این لحظه ایه که برنامه از «یه فایل معمولی» تبدیل میشه به «یه سرور»
وقتی کلاینتی وصل میشه، ()accept صدا زده میشه. نکته خیلی مهم اینه که ()accept همون سوکت قبلی رو برنمیگردونه. یک file denoscriptor جدید ساخته میشه که نمایندهی دقیقاً همون اتصال مشخصه. سوکت اصلی همچنان فقط گوش میده. این جدا شدن listening socket از connected socket یکی از پایهای ترین مفاهیم TCP server هاس و خیلی ها دقیقاً همین جا گیج میشن نمیدونن...
از این به بعد دیگه هیچ چیز خاصی وجود نداره. ارتباط برقرار شده و فقط با یک file denoscriptor در ارتباطی ()read میکنی دیتا میاد. ()write میکنی دیتا میره. نه تابع خاص شبکه، نه تفاوت مفهومی با فایل. همون چیزی که 4.2BSD کانسپتش رو از اول میخواست همینه
سمت کلاینت هم داستان کوتاه تره ولی همون استراکچر رو داره. ()socket ساخته میشه، با ()connect به یک آدرس مشخص وصل میشه، و بعدش همه چیز دوباره به read و write ختم میشه. ()connect در واقع فقط handshake TCP رو کامل میکنه و به اون file denoscriptor معنی اتصال میده همین.
جذابش رو ما تو لینوکس epoll رو داریم که حالا بماند برای بحث آینده. :)
⚝
همه چیز از ()socket شروع میشه این فراخوانی در واقع هیچ ارتباطی رو برقرار نمیکنه، فقط از کرنل میخوای یه اندپوینت خام بهت بده. چیزی شبیه باز کردن یک فایل، با این تفاوت که هنوز نه آدرسی داره و نه مقصدی. فقط یه فایل دیسکریپتور تحویل میگیری که قراره بعدا معنای شبکهای پیدا کنه.
بعد از اون باید به این اندپوینت هویت بدی. اینجاست که ساختار sockaddr_in میاد وسط وقتی میگی IPv4 هست، پورت 8081 رو میخوام و روی همه اینترفیس ها گوش بده، در واقع داری به کرنل میگی این فایل قراره نماینده کدوم نقطه از شبکه باشه. با ()bind این هویت به سوکت چسبونده میشه. هنوز هیچ ارتباطی وجود نداره، فقط آدرس رزرو شده.
تا اینجا سوکت فقط میدونه کیه، نه اینکه چه کاری باید بکنه. ()listen دقیقاً همین جا معنی پیدا میکنه با این فراخوانی، سوکت از حالت عادی خارج میشه و وارد حالت گوش دادن میشه. یعنی کرنل شروع میکنه به گرفتن SYN ها، صف اتصال درست میکنه و آماده میشه برای اینکه کسی واقعاً وصل بشه. این لحظه ایه که برنامه از «یه فایل معمولی» تبدیل میشه به «یه سرور»
وقتی کلاینتی وصل میشه، ()accept صدا زده میشه. نکته خیلی مهم اینه که ()accept همون سوکت قبلی رو برنمیگردونه. یک file denoscriptor جدید ساخته میشه که نمایندهی دقیقاً همون اتصال مشخصه. سوکت اصلی همچنان فقط گوش میده. این جدا شدن listening socket از connected socket یکی از پایهای ترین مفاهیم TCP server هاس و خیلی ها دقیقاً همین جا گیج میشن نمیدونن...
از این به بعد دیگه هیچ چیز خاصی وجود نداره. ارتباط برقرار شده و فقط با یک file denoscriptor در ارتباطی ()read میکنی دیتا میاد. ()write میکنی دیتا میره. نه تابع خاص شبکه، نه تفاوت مفهومی با فایل. همون چیزی که 4.2BSD کانسپتش رو از اول میخواست همینه
سمت کلاینت هم داستان کوتاه تره ولی همون استراکچر رو داره. ()socket ساخته میشه، با ()connect به یک آدرس مشخص وصل میشه، و بعدش همه چیز دوباره به read و write ختم میشه. ()connect در واقع فقط handshake TCP رو کامل میکنه و به اون file denoscriptor معنی اتصال میده همین.
جذابش رو ما تو لینوکس epoll رو داریم که حالا بماند برای بحث آینده. :)
⚝
❤2👌2
Please open Telegram to view this post
VIEW IN TELEGRAM
👌7❤1
حرفای جالبی یاشار با امیر زده به نظرم خوبه نگاه کنید
https://youtu.be/e135_6I0WXY?si=8Dy0H4vahG1i92NE
https://youtu.be/e135_6I0WXY?si=8Dy0H4vahG1i92NE
YouTube
گفت گو با امیر
امروز با امیر صحبت کردم، امیر تازه این فیلدو شروع کرده ولی به نتیجهای رسیده که بچهها تو ۲ سال انتظار دارن برسن، چی شده که امیر زودتر نتیجه گرفته؟ خودم کنجکاو بودم تو این مصاحبه، نسب به مصاحبه قبل بیشتر مصاحبه شونده رو تحلیل کردم، امیدوارم خوشتون بیاد، اگه…
حاجی امروز چشام نمیبینه به جا vm زدم سیستم خودمو ریستارت کردم چه وضعشه 😂
😁8
بعضی چیزا رو تو خونه امتحان نکنید مثل بالا آوردن کوبرنتیز 👩💻 رو سه تا مستر قشنگ سیستم جیغ میکشه =)))
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5