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

 

بعد از مدت ها اومدیم ولی خیلی خفن اومدیم

امروز میخواهیم یک سرور و کلاینت ساده در پایتون بسازیم که درست یک سرور و کلاینت وب سایت رو شبیه سازی میکنه ولی بسیار ساده هست که ما داریم Network Programming یا Sockets Programming انجام میدیدم

Sockets Programming چیست ؟

socket یک کتابخانه در زبان برنامه نویسی پایتون هست برای برنامه نویسی سمت شبکه انجام داد یا ساده تر این که 2 تا دستگاه رو به هم وصل کنیم

Network Programming چیست ؟

یعنی برنامه نویسی سمت شبکه که یعنی برنامه ای بنویسیم که بتوانه یک شبکه ایجاد کنه یا همون مثال بالا که گفتم 2 تا دستگاه رو بهم وصل کنه

تحلیل کد برنامه :‌

سرور :

				
					import socket
s = socket.socket()
host = socket.gethostname()
port = 12345
s.bind((host, port)) 
s.listen(5) 
while True:
   c, addr = s.accept() 
   print ("Got connection from", addr)
   c.send("Thank you for connecting".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 socket
s = socket.socket()
host = socket.gethostname()
port = 12345
s.connect((host, port)) 
print (s.recv(1024)) 
s.close() 

				
			
  • در خط کد اول اومدیم کتابخانه سوکت رو بارگیری کردیم
  • در خط کد دوم اومدیم شعی سوکت رو از کتابخانه سوکت بارگیری کردیم و ریخیتیم داخل متغیر s
  • در خط کد سوم اومدیم هاست خود را به عنوان سیستم محلی خودمون تعریف کردیم و در متغیر host ذخیره کردیم
  • در خط کد چهارم اومدیم عداد 12345 رو به عنوان پورت خودمون در نظر گرفتیم و ریختیم داخل متغیر port
  • در خط پهجم گفتیم اتصال TCP برقرار کن به صورت فعال به هاست و پورتی که تعریف کردیم (به صورت فعال یعنی اگه سرور خاموش بود کد خطا بخوره)
  • در خط ششم گفتیم که پیام TCP که از سرور دریافت کردیم رو چاپ کن داخل کلاینت
  • در خط هفتم هم گفتیم که برنامه بسته شه

خب حالا برای اجرای این برنامه ها باید این خط کد هارو داخل دو تا فایل مختلف پایتون بنویسید و هر دو فایل رو باه اجرا کنید برای این کار cmd ویندوز رو باز کنید و به محلی که این برنامه هارو دارین برین و دو تا صفحه cmd باز کنید و اول سرور رو اجار کنید و بعد کلاینت رو

سرور اجرا شده در یک cmd
 
سرور اجرا شده در یک cmd
کلاینت اجرا شده در یک cmd دیگر
 
کلاینت اجرا شده در یک cmd دیگر

خب این فقط یک مثال ساده بود شما با کتابخانه سوکت خیلی کارها میتوانید انجام بدید

خب حالا بریم سراغ این که چرا اون اول مطلب گفتم که داریم سرور و کلاینت وب سایت رو شبیه سازی میکنیم چون شما دقت کنید میبیند که اگه حتی یک نفر هم داخل یک سایت نباشه سرور سایت روشنه اینجا هم همین اگه کلاینت به سرور وصل نشه هم سرور ما به خطا نمیخوره و اگه سرور خاموش باشه جا به جا کلاینت به خطا میخوره و درست همون اتفاقی که داخل وب سایت میفته داره میفته

شبکه های اجتماعی :

یوتیوب
تلگرام
توییتر (ایکس)
اینستاگرام
ردیت
شبکه های اجتماعی ما :

نویسنده : امیر حسین سلطانی (امیر تورن)

عکس من

من امیر حسین سلطانی هستم به اسم امیر تورن میشناسنم مدیر و بنیاین گذار برند تورن هستم،مهندس IT هستم در زمینه های برنامه نویسی و طراحی وب کار میکنم همچنین تولیدکننده محتوا هستم و درحال دیدن آموزش در زمینه باگ شناسی وب (هک و امنیت) هستم و خیل علاقه مند به این حوضه هستم در رشته ریاضی و فیزیک هم تحصیل میکنم و یکی از هدف هام خدمت به مردم است

عکس من

نوشته های مرتبط :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پروژه های آنلاین ما :

برای دریافت نمونه های بیشتر تماس بگیرید | برای دیدن پروژه ها روی دکمه های زیر کلیک کنید