فرض کنید میخوایم از رستوران X برای نهار غذا سفارش دهیم مراحل این کار به شکل زیر هست:
ما وقتی غذا را سفارش میدهیم برای اینکه پیک غذا را برای ما بیارد نیاز دارد که ادرس خانه مارا داشته باشد ماهم باید شماره تلفن ان رستوران یا ادرس ان رستوران را داشته باشیم.
دقیقا IP شبیه ادرس کامپیوتر ما در اینترنت است که هرکس با اون ادرس با ما اطلاعات رد بدل میکنند.
پورت همانند در خانه در مثال قبل عمل میکند و کار گرفتن ورودی و خروجی را بر عهده دارد.
65535 پورت وجود دارد که به دو گروه رزرو شده و مابقی پورتها رزرو نشده هستند از پورت 1 تا 1024
در دسته پورت های رزرو شده قرار دارند.
پروتکل ها قوانین و قراردادهای هستند که تعیین میکنند که برنامه ها و ماشین ها چگونه با هم ارتباط برقرار کنند.در واقع، پروتکلهای شبکه، ماشینها را قادر میسازند تا از طریق یک زبان مشترک با یکدیگر صحبت کرده و تبادل اطلاعات کنند.مثل پروتکل UDP یا TCP.
پروتکل TCP مخفف (Transmissin Control Protocol) در جای استفاده میشود که امنیت و انتقال دادهها با امنیت بالا، به ترتیب و بیعیب و نقص صورت بگیرد در این پروتکل خطاها برسی میگردد و اگر خطایی باشد دیتا دوباره ارسال میگردد.
سکوت ها انواع مختلفی دارند اما دونوع stream و datagram بیشترین استفاده را دارند ما در این مقاله با stream کار داریم که بر پایه tcp طراحی شده است این سکوت قبل از جابه جای داده باید یک اتصال امن و قدرتمند ایجاد شود تا داده ها با دقت بالا جابه جا شوند.
برنامه نویسی سوکت در پایتون با کتاب خانه استاندارد socket امکان پذیر است.
در برنامه نویسی سوکت به طور معمول از یک سرور و یک کلاینت استفاده میکنیم البته ارتباط غیرکلاینت-سرور نیز امکان پذیر است.
قبل از شروع ما باید کتاب خانه socket را به کد خودمون وارد کنیم:
در مرحله اول باید شی از کلاس socket ایجاد کنیم:
همان طور که میبینید در هنگام تعریف شی به آن دو آرگومان وارد کردیم ارگمان اول نوع ورژن ip را مشخص می کند.AF_INET نشان میدهد ما میخوایم از ipv4 استفاده میکنیم.آرگومان دوم هم نشان مشخص میکند که ما از stream استفاده میکنیم.
حال که ما شی سوکت خودمون رو ایجاد کردیم باید کاری کنیم که در دسترس بشه که برای این کار از متد blind استفاده میکنیم:
در ورودی اول ip که قرار هست ازش استفاده کنیم را به صورت رشته مشخص میکنیم و در ورودی بعدی پورتی که میخوایم استفاده کنیم را وارد میکنیم.
در مرحله بعد باید سوکت را درحالت گوش دادن قرار بدهیم:
با متد listen سوکت را در حالت گوش دادن میزاریم listen یک ورودی از ما میگیرد که تعیین میکند چند نفر میتونن به شبکه ما وصل بشن که من 9 در نظر دارم
در کد بالا ما یک حلقه تعریف کردیم که داخل اون میام هرکی که میخواد به سرور ما کانکت بشه قبول کنه و یک دیتایی بایت با محتوای ok برای اون ارسال کنه دقت کنید که دیتای ارسالی باید بایت باشه و در اخر ارتباط میبنده.
سمت کلاینت به این شکل میشه:
مثل کد سرور ما یک شی از نوع socket تعریف کردیم و به ip 127.0.0.1 که لوکال هاست هست و پورت 5230 کانکت میشیم و منتظر میشیم که از سرور برای ما یک دیتا ارسال بشه با متد recv ورودی این متد مربوط به اندازه پیامی است که قراره دریافت بشه و اون دیتا رو در متغیر data قرار میدیم دیتا دریافتی به صورت بایت هست و بعدش نمایشش میدیم و در اخر ارتباط میبندیم:
اگه از این پست خوشت اومد ممنون میشم لایک کنی.