اموزش توابع ماژول سوکت

از PyLearn.com، دانشنامهٔ آزاد.

پرش به: ناوبری, جستجو

[ویرایش] اموزش توابع ماژول سوکت

مقدمه: یادمه وقتی روزهای اولی که برنامه نویسی را یاد گرفته بودم دوست داشتم برنامه نویسی برای سوکت ها را هم یاد بگیرم. دنبال اموزش هم گشتم حتی تو فروم از مطرح کرده بودم که یه نفر اموزشی برام بزاره حتی قول گرفته بودم , ولی قسمت نشد و خودم شروع به یادگرفتن کردم. برای همین گفتم یه اموزش مختصری بزارم که شاید به دردتون بخوره و شروعی باشه برای شما.این اموزش کامل نیست در ضمن شاید در برخی جاها اشکالی وجود داشته باشد چون برگرداندن برخی جملات و کلمات به فارسی روان کار خیلی سختیه و شاید منظور و معنی لغت و جمله تغییر کند. (این اموزش مربوط به توابع ماژول سوکت هستش)

ماژول socket ابزاری برای دسترسی به BSD socket است.

  • اینها ثابت هایی برای نشان دادن خانواده ادرس ( و پروتوکل ) هستند. برای اولین ارگومان socket() استفاده می شود.
AF_UNIX 
AF_INET 
AF_INET6

اینها ثابت هایی برای نشان دادن نوع سوکت هستند و برای دومین ارگومان socket() استفاده می شود. فقط SOCK_STREAM و SOCK_DGRAM عموما سودمند هستند.

SOCK_STREAM 
SOCK_DGRAM 
SOCK_RAW 
SOCK_RDM 
SOCK_SEQPACKET

این ثابت محتوی یک مقدار بولی است که برای نشان دادن پشتیبانی IPv6 توسط پلتفرم شما است.

has_ipv6

بازگرداندن تمام شرایط لازم دامین نیم برای name , اگر name را خالی بگزاریم دامین نیم لوکال هاست را برمی گرداند.

getfqdn([name])

ترجمه کردن ادرس IPv4 هاست نیم . ادرس IPv4 بازگشتی به صورت یک رشته است مثلا این طوری '127.0.0.1' . اگر هاست نیم یک ادرس IPv4 باشد همان ادرس را برمی گرداند. gethostbyname() IPv6 را پشتیبانی نمی کند.

gethostbyname(hostname)

ترجمه کردن ادرس IPv4 هاست نیم. برگرداندن سه گروه ( hostname, aliaslist, ipaddrlist ) .

gethostbyname_ex(hostname)

برگرداندن یک رشته که محتوی نام ماشین هاست نیم است. اگر شما می خواهید ادرس IP ماشین های مرتبط با هاست نیم را بدست اورید می توانید این صورت عمل کنید gethostbyname(gethostname())

gethostname()

برگرداندن سه گروه (hostname, aliaslist, ipaddrlist) در اینجا هاست نیم همان هاست نیم اصلی است که برای پاسخ دادن به ip_address , aliaslist معین شده است یک لیست از طرف هاست نیم های دیگر برای همان ادرس , و ipaddrlist یک لیست از ادرسهای IPv4/v6 است که برای ارتباط با همان هاست.

gethostbyaddr(ip_address)

برگرداندن یک ادرس سوکت sockaddr داخل تاپل (host, port) . مربوط به محیط های flags است.در نتیجه می تواند دارای تمام شرایط لازم دامین نیم یا ادرس عددی ارایه شده host باشد.همانند port که می تواند شامل رشته نام پورت یا شماره پورت به صورت عددی باشد.

getnameinfo(sockaddr, flags)

قبول کردن یک ثابت مناسب برای ترجمه نام یک پروتوکل اینترنتی (برای مثال , 'icmp') بطوریکه می تواند سومین ارگومان تابع socket() باشد.این مورد معمولا صرفا استفاده میشود برای سوکتهای باز 'raw' در باب (SOCK_RAW) .

getprotobyname(protocolname)

برگرداندن پورت مورد نظر برای نام یک سرویس و پروتوکل اینترنتی . نام پروتوکل باید 'tcp' یا 'udp' باشد.

getservbyname(servicename, protocolname)

ایجاد یک سوکت جدید برای ادرس family , نوع socket و شماره پرورتوکل . ادرس family باید بین AF_INET , AF_INET6 یا AF_UNIX باشد. نوع سوکت هم باید بین SOCK_STREAM , SOCK_DGRAM یا یکی دیگر از ثابت ها انتخاب شود.و شماره پروتوکل هم می تواند صفر باشد یا اصلا نباشد.

socket(family, type[, proto])

راه اندازی یک SSL روی سوکت sock .

ssl(sock[, keyfile, certfile])


[ویرایش] Socket Objects

متدهای شی سوکت به شرح ذیل هستند.به استثنای makefile() که ارتباط و رابطه با سوکت سیستم عامل یونیکس است.

این تابع از سیستم عامل تقاضا می کند که یکی از ارتباطات معلق را ( در صورت وجود ) به برنامه شما معرفی کند

accept()

این تابع به سوکتی که باز کرده اید یک ادرس پورت نسبت می دهد.(فرمت ادرس بستگی به خانواده یا نوع سوکت ادرس دارد)

bind(address)

باعث خاتمه ارتباط می شود.

close()

این تابع برای اتصال به ادرس سوکت دوردست ( سرویس دهنده ) می باشد. .(فرمت ادرس بستگی به خانواده یا نوع سوکت ادرس دارد)

connect(address)

برگرداندن ادرس دور در صورتیکه سوکت ارتباط داشته باشد.

getpeername()

لیستن (اماده برای ارتباط) قرار دادن سوکت برای ارتباط . ارگومان backlog مشخص کننده بیشترین عدد صف ارتباطات است و باید کمترین عدد ان یک باشد و بیشترین عدد به وابسته به سیستم است ( معمولا تا عدد 5 استفاده می کنند)

listen(backlog)

این تابع برای دریافت داده ها از سوکت مورد استفاده قرار می گیرد.بیشترین مقدار دریافت یکباره داده ها با bufsize تعیین می شود. ارگومان flags اختیاری است و می تواند صفر باشد.

recv(bufsize[, flags])

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

send(string[, flags])

تعیین یک زمان برای بلوکینگ کردن .

settimeout(value)



در حال تکمیل توسط pyth0n