آموزش سوکت نویسی با پایتون

نویسنده: رضا حمیدی

آخرین ویرایش : 1 سال قبل

آموزش سوکت نویسی با پایتون

او این مقاله بهتون آموزش سوکت نویسی با پایتون رو بهتون آموزش میدیم و اطلاعاتی را به اشتراک میذاریم.تلفن به عنوان یک وسیله ارتباطی مهم میان انسان ها شناخته میشود. چنین نقشی را در شبکه سوکت ایفا میکند. در واقع کار سوکت این است که بین چند کامپیوتر که در یک شبکه حضور دارند ارتباط برقرار کند.
لذا در این مطلب قصد داریم به آموزش سوکت نویسی با پایتون بپردازیم و با هم کمی در این رابطه صحبت کنیم. اگر شما هم به دنبال اموزش سوکت نویسی در پلتفرم پایتون هستید پیشنهاد می کنیم این مطلب را از دست ندهید. و اگر علاقه‌مند به آموزش برنامه نویسی هستید. با مداد سبز در ارتباط باشید.

مقدمات آموزش سوکت نویسی با پایتون

مقدمات آموزش سوکت نویسی با پایتون

برای این که سوکت نویسی را شروع کنید در ابتدا باید با یکسری مفاهیم اولیه و ساده آشنا شوید که به شرح زیر هستند:

  1. سوکت

به کانال ارتباطی که برای هر برنامه وجود داشته و اطلاعات ان به وسیله این کانال رد و بدل می شود سوکت گفته می شود.

  1. آی پی آدرس(ip)

 به هر کامپیوتری که در شبکه حضور دارد یک آدرس منحصر بفرد تعلق می گیرد که به ان آی پی گفته میشود. آی پی ها دارای دو نوع هستند: IPv4و IPv6. IPv4 به نام ورژن 4 شناخته میشود و چهار عدد در مبنای ده دهی دارد. این اعداد که در بازه 0 تا 255 هستند به وسیله یک نقطه از یکدیگر متمایز می شوند.

اما IPv6 که ورژن 6 است از اعداد و حروفی تشکیل می شود که دارای استاندارد هگزا دسیمال بوده و هر کدام از بخش های این آی پی به وسیله یک دو نقطه یا همان colon (:)  از یکدیگر متمایز می شوند. برای این آی پی از یک فضای 128 بیتی به منظور آدرس دهی استفاده میشود.

  1. پورت

هر آی پی شصت و پنج هزار و پانصد و سی و پنج پورت دارد. این یعنی این تعداد برنامه و ماشین می توانند به این آی پی متصل شوند. پورت ها می توانند دو نوع باشند: رزرو شده و رزرو نشده. پورت های 1 الی 1024 در دسته اول یعنی رزرو شده ها قرار گرفته و سایر پورت ها را در گروه دوم قرار می دهند.

  1. پروتکل

پروتکل ها یا همان قراردادها در واقع قانون هایی هستند که نحوه برقراری ارتباط ماشین های گوناگون با هم را تعیین می کنند. پس می توان گفت پروتکل ها یک زبان مشترک بین ماشین ها هستند که به انها کمک می کنند با هم ارتباط برقرار کرده و اطلاعات را رد و بدل کنند. شبکه ها پروتکل های مختلفی دارند که در این میان پرتوکل های TCP و UDP پرکاربردترین ها هستند.

آشنایی با انواع سوکت هاآشنایی با انواع سوکت ها

در ادامه آموزش سوکت نویسی با پایتون نوبت به آشنایی با انواع سوکت ها می رسد. انواع سوکت ها به شرح زیر هستند:

استریم (stream)

این دسته از سوکت ها بر اساس پروتکل TCP هستند و با همین پروتکل مشغول به کار می باشند. برای پروتکل های FTP, HTTP و SMTP از سوکت هایا ستریم استفاده می شود. سوکت های استریم پیش از تبادل اطلاعات ابتدا یک اتصال ایجاد می کنند که از مهمترین ویژگی های آن ایمن و قوی بودن است. سپس داده ها با نظم مناسب و دقت بالا به مقصد ارسال خواهند شد.

دیتاگرام (datagram)

سوکت های دیتاگرام بر اساس پروتکل UDP طراحی شده و کار میکنند. این دست سوکت ها برای انتقال داده نیاز به هیچ گونه اتصالی ندارند.
به علاوه برای جابجایی اطلاعات مورد نظر کامل بودن و همینطور درست بودن این انتقال هم اهمیتی ندارد و حتی اینکه آیا داده مورد نظر به مقصد رسیده است یا خیر هم هیچ وقت بررسی نمی شود. در مقابل این سوکت ها دارای سرعت فوق‌العاده بالایی هستندو برای همین هم عموما برای جایجایی و فرستادن عکس و صدا از آنها استفاده می شود.

آشنایی با آموزش سوکت نویسی با پایتون و اصول آن

حال که با مقدمات لازم در زمینه آموزش سوکت نویسی با پایتون آشنا شدید نوبت می رسد کمی در مورد خود این موضوع هم صحبت کنیم. به طور سوکت نویسی در پایتون به کمک کتابخانه ای استاندارد به همین نام یعنی سوکت (socket) قابل انجام است. برای سوکت نویسی هم لازم داریم که برنامه نویسی سمت سرور انجام شود و هم برنامه نویسی کلاینت. البته خوب است بدانید که می توان ارتباطات را به صورت غیر کلاینت- سروری هم برقرار کرد.

در زیر یک مثال ساده از سوکت نوسی با پایتون را می بینید که سرور تمامی اطلاعات را از هر نوعی که باشند دریافت کرده و سپس آن را برای کلاینت یا کلاینت ها می فرستد. خود پایتون برای سوکت نویسی امکانی را برای توسعه دهندگان فراهم می ورد که به ان کلاس گفته میشود.

توسعه دهندگان می توانند در این کلاس، اشیا سوکت که به انها Socket Object گفته می شود را در سورس کدهای خوب خیلی ساده و بی هیچ دردسری پیاده‌سازی و اجرا کنند. برای پیاده‌سازی سوکت در پایتون سه مرحله کلی وجود دارد که به شرح زیر هستند:

  1. کتابخانه ی سوکت (Socket) را در پایتون ایمپورت کنید

در این بخش از آموزش سوکت نویسی با پایتون نوبت به اولین مرحله از این کار می رسد که تیمپورت کردن کتابخانه ای به همین نام در برنامه پایتون است. مزیتی که برای این کار وجود دارد این است که شما لازم نیست این کتابخانه را به کمک پکیج منیجر یا همان مدیر بسته نصب کنید. چرا که کتابخانه سوکت یکی از کتابخانه های دیفالت برای پایتون به شمار می آید. ایمپورت کردن این کتابخانه به کمک دستور import socket انجام می شود.

  1. سوکت آبجکت را بسازیدسوکت آبجکت را بسازید

در مرحله بعدی از آموزش سوکت نویسی با پایتون نوبت به آن می رسد که یک سوکت آبجکت ایجاد کنید .برای این کار می توانید از کدی که در زیر آورده شده استفاده کنید و سوکت مورد نظر را ایجاد کنید:

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

دقت کنید به کمک کد بالا شما یک سوکت آبجکت ایجاد می کنید و سپس آن را در متغیری به نام sock ذخیره خواهید کرد. Constructor که به آن سازنده هم گفته می شود نوعی پارامتر و یک خانواده برای socket مورد نظر شما به وجود می اورد. پارامتری هم که برای خانواده تعریف می شود یک گروه از مقدارهای دیفالت است که فرمت انها internet address format یا همان فرمت ادرس اینترنتی است.

به کمک مجموعه ای که جریان های سوکت در آن وجود دارند نوع پارامتر هم تنظیم خواهد شد. به علاوه بای دیفالت استریم های بایتی که دنباله ای هستند به شکلی دو طرفه، قابل اعتمادو براساس اتصالات و پرتوکل های تی سی پی فعال خواهند شد.

  1. اتصال های باز و بسته را ایجاد کنید

وقتی شما یک سوکت ابجکت اولیه داشته باشید قادر هستید از برخی متدها به منظور باز کردن یک اتصال و پس از آن فرستادن داده ها و گرفتن آنها و در آخر هم بستن آن اتصال بهره ببرید. در زیر یک نمونه کد دقیقا برای همین کار یعنی و باز و بسته کردن سوکت و ارسال و دریافت داده را مشاهده می کنید:

## Connect to an IP with Port, could be a URL

sock.connect((‘0.0.0.0’, 8080))

## Send some data, this method can be called multiple times

sock.send(“Twenty-five bytes to send”)

## Receive up to 4096 bytes from a peer

sock.recv(4096)

## Close the socket connection, no more data transmission

sock.close()

آموزش سوکت نویسی با پایتون برای سمت سرورآموزش سوکت نویسی با پایتون برای سمت سرور

نخستین گام برای انجام این کار نصب داشتن پایتون بر روی سیستمی است که قرار است روی ان کار کنید. در گام بعدی شما به کمک دستور ایمپورت سوکت نویسی را آغاز می کنید.

# echo-server.py

import socket

HOST = “127.0.0.1”  # Standard loopback interface address (localhost)

PORT = 65432  # Port to listen on (non-privileged ports are > 1023)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

    s.bind((HOST, PORT))

    s.listen()

    conn, addr = s.accept()

    with conn:

        print(f”Connected by {addr}”)

        while True:

            data = conn.recv(1024)

            if not data:

                break

            conn.sendall(data)

قطعه کد بالا به منظور سوکت نویسی سرور ساید در پایتون می تواند مورد استفاده قرار گیرد. با استفاده از socket.socket() شما یک سوکت ابجکت ایجاد کرده اید که می تواند از فرمت Context Manager Type پشتیبانی کند. آرگومان هایی هم که برای تابع سوکت تعریف می کنیم از نوع ثابت یا constant هستند و از انها به منظور تعیین address family یا همان خاناوده آدرس ها و همینطور نوع سوکت مورد نظر بهره گرفته می شود. اگر علاقه مند به یادگیری و آموزش پایتون هستید به صفحه مربوط آن مراجعه کنید.

خانواده آدرس اینترنتی مان در این کد AF_INET است که برای پرتکل IPv4 است. به علاوه نوع سوکت هم با SOCK_STREAM نشان داده می شود که مشخص می کند این سوکت برای پرتوکل تی سی پی است. از متد bind() هم به منظور برقراری ارتباط رابط شبکه مخصوص و همینطور شماره port آن  با سوکت مورد نظر استفاده میشود که به شکل زیر است:

# echo-server.py

# …

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

    s.bind((HOST, PORT))

    # …

خلاصه

سوکت نویسی از ان دسته مواردی است که در شبکه ها به وفور مورد استفاده قرار می گیرد. در این مطلب از مدادسبز سعی کرده ایم به صورت مقدماتی و خیلی ساده به آموزش سوکت نویسی با پایتون بپردازیم و شما را با مفاهیم این کار آشنا کنیم. امیدواریم که این آموزش برای شما کاربردی باشد.

فهرست مطالب

مقاله های مرتبط

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

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

20 + 8 =