ساخت سرور و کلاینت ساده با پایتون

بعد از مدت ها اومدیم ولی خیلی خفن اومدیم امروز میخواهیم یک سرور و کلاینت ساده در پایتون بسازیم که درست یک سرور و کلاینت وب سایت رو شبیه سازی میکنه ولی بسیار ساده هست که ما داریم Network Programming یا Sockets Programming انجام میدیدم بعدا در یک مقاله جدا درباره پایتون حرف میزنیم Sockets Programming چیست ؟ socket یک کتابخانه در زبان برنامه نویسی پایتون هست برای برنامه نویسی سمت شبکه انجام داد یا ساده تر این که 2 تا دستگاه رو به هم وصل کنیم بعدا در یک مقاله جدا درباره کتابخانه socket حرف میزنیم Network Programming چیست ؟ یعنی برنامه نویسی سمت شبکه که یعنی برنامه ای بنویسیم که بتوانه یک شبکه ایجاد کنه یا همون مثال بالا که گفتم 2 تا دستگاه رو بهم وصل کنه مفاهیم اصلی شبکهکد برنامه :‌سرور : import sockets = socket.socket()host = socket.gethostname()port = 12345s.bind((host,port))s.listen(5)while True :c,add = s.accept()print(&quotGot connection form&quot,add)c.send(&quotThank you for connecting&quot.encode())c.close()در کد بالا ما اومدیم و سرور خود را نوشتیم که میاد پیام Thank you for connecting رو به کلاینت ارسال میکنه و داخل خودش پیام Got connection form چاپ میکنه به همراه آدرس IP کلاینت در خط کد اول اومدیم کتابخانه سوکت رو بارگیری کردیم در خط کد دوم اومدیم شعی سوکت رو از کتابخانه سوکت بارگیری کردیم و ریخیتیم داخل متغیر s در خط کد سوم اومدیم هاست خود را به عنوان سیستم محلی خودمون تعریف کردیم و در متغیر host ذخیره کردیم در خط کد چهارم اومدیم عداد 12345 رو به عنوان پورت خودمون در نظر گرفتیم و ریختیم داخل متغیر port در خط کد پنجم اومدیم هاست و پورت رو با اسنفاده از تابع bind() که داخل کتابخانه سوکت هست هاست و پورت رو به هم وصل کردیم در خط کد ششم یک اتصال TCP راه اندازی کردیم در خط کد هفتم یک حلقه بینهایت زدیم که به مسیر گوش کنه در خط هشتم اومدیم اتصال TCP رو به صورت غیرفعال پذیرفتیم و ریختیم داخل متغیر add و c (غیرفعال پذیرفتیم یعنی اگه کلاینت بهش وصل نبود کد به خطا نخوره و همینطوری 24 ساعته سرور فعال باشه)در خط نهم گفتیم که وقتی کلاینت وصل شد به سرور پیام Got connection form و آدرس آی پی کلاینت رو برامون داخل خود سرور چاپ کنه در خط دهم اومدیم گفتیم پیام Thank you for connecting رو به کلاینت ارسال کنه در خط یازدهم هم گفتیم برنامه بسته بشه کلاینت : import sockets = socket.socket()host = socket.gethostname()port = 12345s.connect((host,port))print(s.recv(1024))s.close()در خط کد اول اومدیم کتابخانه سوکت رو بارگیری کردیم در خط کد دوم اومدیم شعی سوکت رو از کتابخانه سوکت بارگیری کردیم و ریخیتیم داخل متغیر s در خط کد سوم اومدیم هاست خود را به عنوان سیستم محلی خودمون تعریف کردیم و در متغیر host ذخیره کردیم در خط کد چهارم اومدیم عداد 12345 رو به عنوان پورت خودمون در نظر گرفتیم و ریختیم داخل متغیر portدر خط پهجم گفتیم اتصال TCP برقرار کن به صورت فعال به هاست و پورتی که تعریف کردیم (به صورت فعال یعنی اگه سرور خاموش بود کد خطا بخوره)در خط ششم گفتیم که پیام TCP که از سرور دریافت کردیم رو چاپ کن داخل کلاینت در خط هفتم هم گفتیم که برنامه بسته شه خب حالا برای اجرای این برنامه ها باید این خط کد هارو داخل دو تا فایل مختلف پایتون بنویسید و هر دو فایل رو باه اجرا کنید برای این کار cmd ویندوز رو باز کنید و به محلی که این برنامه هارو دارین برین و دو تا صفحه cmd باز کنید و اول سرور رو اجار کنید و بعد کلاینت رو سرور اجرا شده در یک cmd کلاینت اجرا شده در یک cmd دیگرخب این فقط یک مثال ساده بود شما با کتابخانه سوکت خیلی کارها میتوانید انجام بدید خب حالا بریم سراغ این که چرا اون اول مطلب گفتم که داریم سرور و کلاینت وب سایت رو شبیه سازی میکنیم چون شما دقت کنید میبیند که اگه حتی یک نفر هم داخل یک سایت نباشه سرور سایت روشنه اینجا هم همین اگه کلاینت به سرور وصل نشه هم سرور ما به خطا نمیخوره و اگه سرور خاموش باشه جا به جا کلاینت به خطا میخوره و درست همون اتفاقی که داخل وب سایت میفته داره میفته مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهآشنایی با مدل TCP/IP , آشنایی با مدل OSI , دیوار آتشین