برنامه نویسی سوکت در پایتون قسمت دوم
امیرحسین تنگسیری نژاد هستم با Part دوم دوره آموزشی برنامه نویسی سوکت در پایتون
ساخت یک Client
کارمان را با ساخت یک سوکت با استفاده از تابع socket() که در پارت قبل یادگرفتیم شروع میکنیم
در واقع Syntax نوشتاری یک سوکت در Python به شکل زیر میباشد
s = socket.socket (Socket_Family, Socket_Type, Protocol )
خب توضیحات کلمات بالا:
Socket_Family:
نوع socket و پروتکل مد نظر را تعیین می کند که از کدام خانواده باشد:
AF_INET6: IPv6
AF_INET: IPv4
Socket_Type:
نوع اتصال، استفاده از پروتکل های TCP و یا UDP که مقدار های SOCK_STREAM و SOCK_DGRAM می باشد
SOCK_STREAM: TCP
SOCK_DGRAM: UDP
نکته: مقدار های دیگری همچون
SOCK_RAW
SOCK_RDM
SOCK_SEQPACKET
را نیز می تواند داشته باشد که فعلا مورد بحث ما نیستند و فقد از STREAM و DGRAM استفاده خواهیم کرد
Protocol:
پروتکل مد نظر که Default مقدار 0 را دارد
TCP:
مخفف Transmission Control Protocol پروتکلی است که با پروتکل IP کار می کند و نحوه انتقال داده های بین کامپیوتر ها را تعیین می سازد و در Transport-Layer استاندارد OSI و TCP/IP قرار دارد
UDP:
مخفف User DataGram Protocol می باشد که همانند پروتکل TCP است ولی فرق آن این است که سلامت ارسال بسته ها و دارا بودن خطا در آن ها تضمین نمیکند این مکانیزمش موجب بالا بودن سرعت شده است
نحوه ایجاد یک socket به عنوان کلاینت به منظور ارسال یک TCP Connection به سمت سرور را باهم پیش میبریم:
import socket
فراخانی ماژول
socket HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 65432 # The port used by the server
ایجاد دو متغیر که حاوی IP Address و Port سرور می باشند را ایجاد کرده ایم و به آنها مقدار دادیم
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ایجاد یک TCP Connection
s.connect((HOST , PORT))
و در اخر با استفاده از تابع connect به سمت سرور این Connection را ارسال خواهیم کرد
کد ما به شکل زیر می باشد
import socket
HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 65432 # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
خب به صورت کامل بخوام کد بالارو توضیح دهم
ما با استفاده از ماژول Socket در Python یک TCP Connection به سمت Host و Port مد نظرمان که Port برابر با 65432 می باشد و Host برابر با localhost می باشد ارسال کرده اییم و درخواست اتصال به این Port را داریم دراصل ما یک Client در سمت خود ایجاد کرده اییم
کمی کدمان را توسعه دهیم
چطور مقدار Host و Port را از سمت کلاینت درخواست کنیم؟!
خب کافیست ما در متغییر ها Host و Port به جای دادن یک Value ( مقدار ) مد نظر، آن Value را از فرد اجرا کننده Script درخواست کنیم
import socket
try:
HOST = input("Please enter the IP address: ") # The server's hostname or IP address
PORT = input("Please enter the Port number: ") # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
except:
print ("No connection established ! ")
خب حالا کدمان را اجرا میکنیم و خروجی به شکل زیر دریافت میکنیم که از ما درخواست ورودی های IP Address و Port Number را دارد که به ترتیب وارد میکنیم و اگر اتصال برقرار نشود به ما error دهد
پایان پارت دوم
نویسنده: امیرحسین تنگسیری نژاد
کانال شخصی من در تلگرام:
@AmirHoseinTangsiriNET
مطلبی دیگر از این انتشارات
دانلود رایگان آموزش شروع کار با گیت و گیت هاب یودمی
مطلبی دیگر از این انتشارات
محیط کار جادی برای ضبط ویدئوهای آموزشی + دو درس از زندگی (:
مطلبی دیگر از این انتشارات
سلام و احوال پرسی اول،هنگام ورود