⚝ – Telegram
1.44K subscribers
48 photos
12 videos
8 files
48 links
{ دلباختهٔ دنیای صفر، یک و آنچه بین آنهاست }
نیم‌ چِ‌ از همه چیز... 🌀
- @ahpanahifar
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🔗 لینکدین هم ریویو سالیانه داده 🫧
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤‍🔥1🥰1
🌗🦋
Please open Telegram to view this post
VIEW IN TELEGRAM
10🥰1😍1
به قول شاعر میگه هرجایی نرو شأن داشته باش 😂🧦🗡
#گنگ
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
71❤‍🔥1
فال یلدا 🐚
❤‍🔥61
🎴
111❤‍🔥1
ایندفعه غروب شهرک غرب برام بهترین خاطره عمیقی بود که همیشه ته ذهنم نگه میدارم...
بهت افتخار میکنم امیرحسین 🤍
8🦄2
Forwarded from امیرحسین پناهےفر
چیله بایرامیز موبارک اولسون 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
9😁2🔥1
Gitmemiz Lazım
Erkan Süzgün
1
بعضی وقتا نیاز نیست آدم چیزی بگه،
همین حضورش کفایت میکنه.
4
بیشتر چیز هایی که امروز به اسم 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 رو داریم که حالا بماند برای بحث آینده. :)
2👌2
دوئولینگو تفریح خوبیه. 👋
Please open Telegram to view this post
VIEW IN TELEGRAM
👌71
LSB vs POSIX
~ The Linux Programming Interface ― Michael Kerrisk
👌2
حاجی امروز چشام نمیبینه به جا vm زدم سیستم خودمو ریستارت کردم چه وضعشه 😂
😁8
بعضی چیزا رو تو خونه امتحان نکنید مثل بالا آوردن کوبرنتیز 👩‍💻 رو سه تا مستر قشنگ سیستم جیغ میکشه =)))
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5
🪬🎲
61
Abandonment
Ólafur Arnalds @calmezvous
آنجا که دلت آرام گرفت مقصد است...
2