"آن کس که نداند و بداند که نداند" هستم
آموزش سوکت در پایتون
کتابخانه سوکت چیست؟
آموزش برنامه نویسی Socket در زبان Python : در این نوشته و همچنین بخش های بعدی این نوشته میخواهیم برنامه نویسی Socket به زبان برنامه نویسی Python را یاد بگیریم!
برنامه نویسی تحت شبکه(Socket Programming)، به هر نوع برنامه ای میگویند که کامپیوتر شما باید به یک کامپیوتر دیگر دور از خود وصل شود و با آن ارتباط داشته باشد.
کمی درباره برنامه نویسی سوکت
وقتی میخواهیم از سوکت استفاده کنیم، کامپیوتر های متصل به هم، به دو نوع تقسیم میشوند:
- سرور
- کلاینت
سرور به زبان عامیانه، یعنی کامپیوتر اصلی؛ یعنی اون کامپیوتری که همه بهش وصل میشن.
کلاینت هم برعکس سرور هست؛ یعنی اینکه به هیچ کلاینت دیگری نمیتواند وصل شود و باید به یک سرور وصل شود.
- سرور : کامپیوتر اصلی است و همه به آن وصل میشوند.
- کلاینت : کامپیوتر کاربر است و میتواند به یک سرور وصل شود.
نکته :معمولا در این نوع برنامه نویسی از هر دو سمت کلاینت و سرور برای جابهجایی داده ها بهره گرفته میشود. یعنی هم سرور میتواند به کلاینت هایش پیام بدهد و هم کلاینت ها میتوانند به سرور پیام بدهند.
چجوری کدش رو بزنیم؟
در اولین گام، باید کتابخانه سوکت رو صدا بزنیم.
import socket
در گام دوم، باید از روی کتابخانه socket یک شی بسازیم. زیر دیپلمش میشه این: "یه کپی از روی کتابخونه سوکت بگیریم و داخل یه متغییر بریزیم"
s = socket.socket()
حالا باید یه پورت و شماره ای پی رو برای خودمون بکنیم.
s.bind(('Your ip', 'Your Port'))
برای اینکه شماره ip لپ تاپتون رو پیدا کنیم، برین توی cmd. بعدش متن زیر رو توی cmd بنویسین. البته این رو باید بدونید که ip کامپیوتر، یه عدد متغییره! یعنی هرچند وقت یکبار عوض میشه. پس هر بار خواستین یه برنامه با سوکت بنویسید، ip تون رو چک کنید.(ip های ثابت، پولی هستند.)
ipconfig
بعد از آن اینتر را بزنید. با صفحه زیر مواجه میشود:
ای پی کامپیوتر رو پیدا کردین.حالا عدد هایی که در کادر قرمز وجود دارد را به کد زیر اضافه کنید.
s.bind(('192.168.1.51', 'Your Port'))
تا حالا ما ای پیمون رو پیدا کردیم. حالا نوبت پر کردن فیلد پورته!
پورت عددی نیست که مثل ای پی ثابت باشه؛ یعنی شما میتونین هر بار یه عدد دیگه جاش بذارین. مثل این میمونه که شماره تلفنتون رو چند وقت یه بار عوض کنید؛ شما عوض نمیشید، فقط شمارتون عوض میشه.
معمولا برای شماره پورت، عدد 8000 رو انتخاب میکنیم؛ چون توی اتصال انگار قوی تر عمل میکنه؛ خودم هم نمیدونم چرا، ولی 8000 به بالا رو انتخاب کنید.
s.bind(('192.168.1.51', 8000))
نکته: bind کردن به معنی رزرو کردن هست؛ یعنی ما جایی را(ای پی) با یک شماره تلفن(پورت)، رزرو میکنیم.
s.listen()
کد نوشتن کد بالا، برنامه درخواست کامپیوتر را منتشر میکند تا کامپیوتر های دیگر بتوانند به آن وصل شوند.
حالا میریم تا کد سرور و کلاینت رو بنویسیم.
برنامه نویسی سوکت - کد سرور
import socket
s = socket.socket()
port = 8000
ip = '192.168.1.51'
s.bind((ip, port))
s.listen()
c, addr = s.accept()
print('Connected')
while True:
message = input('Your Message : ')
c.send(message.encode())
print(c.recv(1024).decode())
برنامه نویسی سوکت - کد کلاینت
import socket
s = socket.socket()
port = 8000
ip = '192.168.1.51' #IP کامپیوتر سرور
s.connect((ip, port))
print('Connected')
while True:
print(s.recv(1024).decode())
message = input('Your Message : ')
s.send(message.encode())
مطلبی دیگر از این انتشارات
چطور توی پایتون بازی بسازیم؟ - قسمت اول
مطلبی دیگر از این انتشارات
نوشتن یک اسکریپت کوچولو با پایتون
مطلبی دیگر از این انتشارات
سلام دنیا!