باستخدام بايثون، قم بإنشاء اتصال عميل TCP الذي يطبع أيضًا بيانات حزمة TCP بتنسيق قابل للقراءة
باستخدام بايثون، قم بإنشاء اتصال عميل TCP الذي يطبع أيضًا بيانات حزمة TCP بتنسيق قابل للقراءة
user
شيء أكيد! إليك الكود الذي ينشئ عميل tcp الذي يعرض بيانات حزمة tcp:

مقبس الاستيراد

تعريف tcp_connection(المضيف، المنفذ):
    # إنشاء مقبس TCP
    جورب = المقبس.socket(socket.AF_INET، المقبس.SOCK_STREAM)
    
    يحاول:
        # الاتصال بالخادم
        sock.connect ((المضيف، المنفذ))
        طباعة (f"متصل بـ {host}:{port}")
        
        احيانا صحيح:
            # تلقي البيانات من الخادم
            البيانات = sock.recv(1024)
            
            إن لم يكن البيانات:
                # لا يوجد المزيد من البيانات لتلقيها
                استراحة
            
            # فك تشفير محتوى حزمة TCP
            packet_content = data.decode()
            
            # طباعة محتوى الحزمة المنسقة
            طباعة ("الحزمة المستلمة:")
            طباعة ("-" * 20)
            طباعة (packet_content)
            طباعة ("-" * 20)
    
    باستثناء خطأ رفض الاتصال:
        طباعة (f"الاتصال بـ {host}: تم رفض {port}")
    
    باستثناء الاستثناء كـ e:
        طباعة(f"حدث خطأ: {str(e)}")
    
    أخيراً:
        # أغلق المقبس
        جورب. قريب ()

#مثال الاستخدام
tcp_connection("example.com"، 80)

هنا يمكننا أن نرى أن الكود ينشئ مقبس عميل tcp ويحاول الاتصال بمضيف (example.com) على المنفذ 80. ثم يقرأ الكود بيانات الحزمة باستخدام "data.decode". وأخيرًا، تتم طباعة بيانات حزمة TCP بتنسيق قابل للقراءة.
assistant