الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بعض أكواد في هذا السكربت لم تتضح لي

مغلقمُجاب
بدأه hello.python في 7 أبريل 2013 · 3 رد · 643 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

في موضوع السابق أردت أن أفهم مكتبة socket والحمد الله الأخ Mr.B أفادني بسكربت تقريبا يعطي توضيح دقيق على طريقة إستعمال المكتبة

 

وهذا هو السكربت

 

#!python
# -*- coding: utf-8 -*-

import socket
import time

MAX_PORT = 65536

host = 'openbsd.org'

try:
    for port in [80, 113, 21]:# xrange(0, MAX_PORT):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(15)
        try:
            s.connect((host, port))
            print('port {0:5} : open'.format(port))
        except socket.timeout, e:
            print('port {0:5} : filtered ({1})'.format(port, e))
        except socket.error, e:
            print('port {0:5} : close    ({1})'.format(port, e))
        s.close()
        time.sleep(1)
except KeyboardInterrupt:
    exit(0)

في السطر

s.connect((host, port))

لن يعمل في البايثون لا أدري لماذا ولكن وجدت دالة أخرى وهي

 

socket.create_connection((host, port))

في السكربت لم أفهم بعض السطور وقد أشرت إليها فما يلي

 

try:
    for port in [80, 113, 21]:# هذه مفهومة
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#مفهومة
        s.settimeout(15)#مفهومة
        try:#مفهومة
            s.connect((host, port))#مفهومة
            print('port {0:5} : open'.format(port))#لم افهمه والمافئدة من format
        except socket.timeout, e:#من أين جاء متغير e
            print('port {0:5} : filtered ({1})'.format(port, e))#نفس الشيء لم افهم السطر كله
        except socket.error, e:
            print('port {0:5} : close    ({1})'.format(port, e))#ونف س الشيء هنا أيضا لم أفهم السطركله
        s.close()
        time.sleep(1)

وايضا في أحد السكربتات التي كنت أدرسها وجدت هذا السطر

 

s.recv(1024)

ما الفائدة منه,حاولت تطبيقه في محرر PyScripter ولكن لم يجده في قائمة الدوال

 

أرجوا من أهل الخبرة مساعدتي

 

وجزاكم الله خيرا

#2

ربما تجد بعض الإختلافات في الدوال بين الإصدار الثالث والثاني

 

اما { } فهي تستخدم في عملية تنسيق النص 

{0} تعني العنصر الأول الممرر ل format

{1} تعني العنصر الثاني الممرر ل format

{0:5} تعني العنصر الأول محجوز له 5 خانات عرض

 

 

recv تستقبل البيانات من ال socket بحسب ال مساحة الbuffer التي حددتها أنت

 

 

http://docs.python.org/3/library/socket.html

 

http://docs.python.org/2/library/socket.html

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

وما دور format أخي الفاضل

#4 أفضل إجابة

format هي دالة تستخدم لتنسيق النص حسب تعليمات تقوم بتحديدها أنت 

http://docs.python.org/2/library/stdtypes.html#str.format

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

هذا الموضوع مغلق.

مواضيع مشابهة