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

ممكن شرح هذه الشفرة جزاكم الله خيرا

بدأه حبيب25 في 12 يناير 2010 · 2 رد · 1,004 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

ا

أتمنى من أعضاء هذا المنتدى الطيبين ان يساعدوني في فهم هذه الشفرة في الأسفل إيعاز إيعاز انا اتمنى منهم شرحها بالتفصيل وبالأرقام

شكرا

الشفرة

Private Type WSADATA

wVersion As Integer

wHighVersion As Integer

szDescription(0 To 256) As Byte

szSystemStatus(0 To 128) As Byte

wMaxSockets As Long

wMaxUDPDG As Long

dwVendorInfo As Long

End Type

Private Declare Function WSAStartup Lib "wsock32" _

(ByVal wVersionRequired As Long, _

lpWSADATA As WSADATA) As Long

Private Declare Function gethostbyname Lib "wsock32" _

(ByVal HostName As String) As Long

Private Declare Function inet_ntoa Lib "WSOCK32.DLL" _

(ByVal Addr As Long) As Long

Private Declare Function lstrlenA Lib "kernel32" _

(lpString As Any) As Long

Private Declare Function lstrcpyA Lib "kernel32" _

(ByVal RetVal As String, _

ByVal Ptr As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" _

Alias "RtlMoveMemory" _

(xDest As Any, _

xSource As Any, _

ByVal nbytes As Long)

Private Function GetStrFromPtrA(ByVal lpszA As Long) As String

GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)

Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)

End Function

Private Sub Command1_Click()

If SocketsInitialize() Then

IPAddress = GetIPFromHostName(Text1.Text)

Text2.Text = IPAddress

End If

End Sub

Private Function SocketsInitialize() As Boolean

Dim WSAD As WSADATA

SocketsInitialize = WSAStartup(&H101, WSAD) = 0

End Function

Private Function GetIPFromHostName(ByVal HostName As String) As String

Dim ptrHosent As Long 'address of HOSENT structure

Dim ptrAddress As Long 'address of address pointer

Dim ptrIPAddress As Long

Dim ptrIPAddress2 As Long

ptrHosent = gethostbyname(HostName)

If ptrHosent <> 0 Then

ptrAddress = ptrHosent + 12

CopyMemory ptrAddress, ByVal ptrAddress, 4

CopyMemory ptrIPAddress, ByVal ptrAddress, 4

CopyMemory ptrIPAddress2, ByVal ptrIPAddress, 4

GetIPFromHostName = GetStrFromPtrA(inet_ntoa(ptrIPAddress2))

End If

End Function

#2

السلام عليكم

أخي أنا لم أفهم هذا الكود جيدا لأني لست بارعا في قراءة الأكواد :)

و لكني فهمت بأنه برنامج للإتصال بين الأجهزة عبر أداة Winsock

و إذا أردت فهمه جيدا قم بتجربته على ال vb

و ضع زر command و لا تغير اسمه لأنه يكون command1 مثل ما هو في الكود

و ضع أيضا أداة winsock

و جرب ماذا سيحدث و طبعا ستكون أخطاء و منها تعرف ما ينقصك لتشغيله بشكل صحيح

قد لا تكون الأداة المستعملة winsock و لكن جرب و انظر ماذا سيحدث

هذا ما امكنني قوله بالنسبة لهذا الكود

شكرا

تم تعديل هذه المشاركة بواسطة 3ml في 13 يناير 2010 في 23:56

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#3
3ml كتب:

السلام عليكم

أخي أنا لم أفهم هذا الكود جيدا لأني لست بارعا في قراءة الأكواد :)

و لكني فهمت بأنه برنامج للإتصال بين الأجهزة عبر أداة Winsock

و إذا أردت فهمه جيدا قم بتجربته على ال vb

و ضع زر command و لا تغير اسمه لأنه يكون command1 مثل ما هو في الكود

و ضع أيضا أداة winsock

و جرب ماذا سيحدث و طبعا ستكون أخطاء و منها تعرف ما ينقصك لتشغيله بشكل صحيح

قد لا تكون الأداة المستعملة winsock و لكن جرب و انظر ماذا سيحدث

هذا ما امكنني قوله بالنسبة لهذا الكود

شكرا

شكرا على الرد

اخي العزيز انا اعلم ماذا يفعل البرنامج لكن هناك اشياء تحدث لا افهمها

ععموما شكرا على الرد

1

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