السلام عليكم ورحمة الله وبركاته
فضلا هل من أحد يشرح لنا مكتبة socket ويشرح كيف تستخدم ويعيطنا مثال تطبيقي
لأنه والله لم افهم فيها شيء
فضلا أعينون
السلام عليكم ورحمة الله وبركاته
فضلا هل من أحد يشرح لنا مكتبة socket ويشرح كيف تستخدم ويعيطنا مثال تطبيقي
لأنه والله لم افهم فيها شيء
فضلا أعينون
ستجد شروحات كثيرة في الإنترنت وفي صفحة الوثائق نفسها، الا أنه نادر أن تجد مثال تطبيقي وعملي على استخدامها.
لم توضّح الى ماذا تهدف من تعلمها الا أنني أظن أنك لست بحاجتها، أو على الأقل هناك خيارات أفضل لك. مكتبة socket مكتبة منخفضة المستوى، بمعنى أنك بحاجة لبناء بروتوكولك الخاص لإستخدامها، غالباً مايتم بإستخدام struct، أو أنك تريد إضافة بروتوكول غير مدعوم أي يلزم أن يكون لديك خبرة مسبقة في الشبكات والبروتوكول الذي تريد اضافته، وهذا مالايعلمه كثير من متعلمين الـsocket، يتعلمها في الأخير لايجد تطبيق وينساها.
بايثون توفر دعم لعدد من البوتوكولات الجاهزة في نفس اللغة كـhttp و ftp و telnet وsmtp وهناك العديد من المكتبات الغير قياسية لبروتوكلات جاهزة، حدد حاجتك وابحث عن البروتوكول المناسب.
تم تعديل هذه المشاركة بواسطة Mr.B في 5 أبريل 2013 في 22:57
فمثلا انا اريد أن أقوم بكتابة سكربت فحص منافذ السرفر الخاص بي ومعرفة البورتات والخدمات الخاص بها
تم تعديل هذه المشاركة بواسطة hello.python في 5 أبريل 2013 في 23:36
هناك الكثير من الأمثلة على هذا الموضوع. في فحص المنافذ تقوم بإنشاء اتصال مع الخادم بالمنافذ من 0 إلى أعلى منفذ 65535 وتصنف المنافذ حسب التالي:
هذا تطبيق على خادم يحتوي الحالات الثلاث:
#!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)إذا لديك خبرة في السي ستجد هذا الكتاب تفصيلي وسيفيدك في أي لغة ستستخدمها
*قمت بتعديل الموضوع لتمت الإجابة بعد جواب Mr.B الكافي
تم تعديل هذه المشاركة بواسطة ahmed_youssef في 6 أبريل 2013 في 10:48
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
جزاكم الله خيرا الآن إتضحت الفكرة لي
فقط أردت أنوه الأخ Mr.B في السكربت لي وضعه في سطر
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)
مالفائدة منه وما عمله
ياليت تشرحه لي
وشكرا لك يا أخ الفاضل
تم تعديل هذه المشاركة بواسطة hello.python في 7 أبريل 2013 في 01:06
هذا الموضوع مغلق.