1. المدير العام

    المدير العام أدارة موقع أكتب كود

    [​IMG]

    مكتبة Socket
    درسنا اليوم هو بمجال الشبكات Networking في بايثون وهذا الجزء مهم جداً جداً
    سوف نتحدث عن مكتبات مهمة سوف نتحدث عليها بهذا الجزء وبالأخص مكتبة Socket .


    [​IMG]

    شرح مافي الصورة السابقة

    لدي جهاز كمبيوتر مكتبي نريد ان نوصله بالانترنت و اخذنا له سلك شبكه من الروتر لتغذيته بالأنترنت, معنى ذلك انه سيكون هناك بورت محدد مفتوح بينهما، سيكون في السلك تسير به bits ذهاباً و إياباً, و الكبل بأطرافه Rj-45 لتوصيل النبضات الكهربائيه بين الطرفين، وتكون سرعه الجهاز لدي هي 1mb.

    وايضاً يكون لدينا لابتوب نستطيع ربطه عبر كبل مثله مثل الكمبيوتر او عبر wifi ، وسوف يأخذ ايبي و بورت بشكل طبيعي نستطيع عمل عليه اختبار عبر nmap وغيره بشكل طبيعي.

    والاكثر انتشاراً في عالمنا هو هواتفنا الذي بأيدينا ليلاً ونهاراً, نستطيع الأتصال بأي شبكه بشكل لاسلكي عبر wifi ووظيفة الروتر هي الاتصال بهذه الأجهزة وهو مسؤول عن كل شيئ, ويكون على دراية بكل شيئ ضمن هذه الشبكه, نستطيع من خلاله تحديد ايبي اي جهاز متصل او هوست نيم ....... الخ.

    فإذا نريد أن يأخذ الكمبيوتر المكتبي انترنت عبر wifi يجب ان نركب له كرت شبكه ويتصل مثله مثل اللابتوب wifi.

    امثلة في مكتبة socket
    كود:
    >>> import socket
    >>> socket.gethostname()        #لمعرفة هوست جهازي
    'kali'
    >>> socket.gethostbyname('kali')        #لمعرفة ايبي جهازي
    '127.0.1.1'
    >>> port = 22
    >>> socket.getservbyport(port)  #لمعرفة هذا البورت الذي حددناه
    'ssh'
    >>> socket.getservbyname("ssh")         #عكس العملية السابقة
    22
    >>>
    long host & short host

    في المستوى المنخفض من البيانات يلزم ان يحصل على "transmission over rights betwen machine " يكون للجهاز و الشبكة لهما كل واحد صيغة مختلفة, وهذه الصيغه تكون integer يلزم تحويل الصيغة و يوجد long و short .

    مثال
    لدينا نوعين من البيانات data وهي integer سوف نحولها لـ transmission network format سوف نعمل لها short او long .
    كود:
    >>> import socket
    >>> data = 997  #نوع البيانات
    >>> socket.htonl(data)  #بيانات long
    3842179072L
    >>> socket.htons(data)  #بيانات short
    58627
    >>> socket.ntohl(3842179072L)   #بيانات متحولة معكوسة
    997L
    >>> socket.ntohs(58627)         #بيانات متحولة معكوسة
    997
    >>>

    [​IMG]

    شرح المثال السابق

    في مثالنا استخدمنا الرقم 997 كنوع بيانات و حولناه لنوع بيانات طويلة و قيصرة عبر htonl,htons و بعدها عكسنا العمليات.
    معنى htonl هي اختصار من الكلمات :
    كود:
    h   #host
    to  #to
    n   #network
    l    #long
    معنى htons هي اختصار من الكلمات :
    كود:
    h   #host
    to  #to
    n   #network
    s    #short
    
    set and get timeout

    سوف نتحدث عن timeout مثلا فتحنا جلسة وعملنا الآتي
    كود:
    >>> import socket
    >>> sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    >>> sock.settimeout(50)         #عدد ثواني الانتظار
    >>> sock.gettimeout()   #عرض الوقت
    50.0
    >>>

    [​IMG]

    شرح للمثال السابق

    قلنا بالمثال ان socket توجد ميثود ثانية اسمها socket بنفس الاسم ولها 2 ارجيومنت أولها هو
    (socket.AF_INET) يعني الايبي يكون ipv4 و الارجيومنت الثاني هو (socket.SOCK_STREAM) يعني الاتصال مفتوح بين العميل و المخدم في اتصال tcp وبعدها قلنا له الانتظار يكون 50 ثانية و عرضنا الوقت وعرضه بشكل طبيعي.
     
جاري تحميل الصفحة...
المشاركات المتشابهة - مكتبة Socket المهمة
  1. المدير العام
    الردود:
    0
    المشاهدات:
    610
  2. المدير العام
    الردود:
    0
    المشاهدات:
    111
  3. المدير العام
    الردود:
    0
    المشاهدات:
    204
  4. المدير العام
    الردود:
    0
    المشاهدات:
    90
  5. مبرمـج
    الردود:
    1
    المشاهدات:
    149