منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] اريد شرح الكود او توضيح الفكرة العامة له - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] اريد شرح الكود او توضيح الفكرة العامة له (/showthread.php?tid=570)



اريد شرح الكود او توضيح الفكرة العامة له - ali.alfoly - 17-10-13

السلام عليكم ورحمة الله وبركاته
اريد حد يشرحلى الكود ده او يوضح الفكرة العامة له


كود :
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(GetFastestNISTDate().ToLocalTime)
    End Sub

    Public Function GetFastestNISTDate() As DateTime
        Dim result = DateTime.MinValue
        ' Initialize the list of NIST time servers
        ' http://tf.nist.gov/tf-cgi/servers.cgi
        Dim servers As String() = New String() _
        {"nist1-ny.ustiming.org", "nist1-nj.ustiming.org", "nist1-pa.ustiming.org", "time-a.nist.gov", "time-b.nist.gov", "nist1.aol-va.symmetricom.com", _
         "nist1.columbiacountyga.gov", "nist1-chi.ustiming.org", "nist.expertsmi.com", "nist.netservicesgroup.com"}

        ' Try 5 servers in random order to spread the load
        Dim rnd As New Random()
        For Each server As String In servers.OrderBy(Function(s) rnd.NextDouble()).Take(5)
            Try
                ' Connect to the server (at port 13) and get the response
                Dim serverResponse As String = String.Empty
                Using reader = New IO.StreamReader(New System.Net.Sockets.TcpClient(server, 13).GetStream())
                    serverResponse = reader.ReadToEnd()
                End Using

                ' If a response was received
                If Not String.IsNullOrEmpty(serverResponse) Then
                    ' Split the response string ("55596 11-02-14 13:54:11 00 0 0 478.1 UTC(NIST) *")
                    Dim tokens As String() = serverResponse.Split(" "c)

                    ' Check the number of tokens
                    If tokens.Length >= 6 Then
                        ' Check the health status
                        Dim health As String = tokens(5)
                        If health = "0" Then
                            ' Get date and time parts from the server response
                            Dim dateParts As String() = tokens(1).Split("-"c)
                            Dim timeParts As String() = tokens(2).Split(":"c)

                            ' Create a DateTime instance
                            Dim utcDateTime As New DateTime(Convert.ToInt32(dateParts(0)) + 2000, Convert.ToInt32(dateParts(1)), Convert.ToInt32(dateParts(2)), Convert.ToInt32(timeParts(0)), Convert.ToInt32(timeParts(1)), Convert.ToInt32(timeParts(2)))

                            ' Convert received (UTC) DateTime value to the local timezone
                            result = utcDateTime '.ToLocalTime()

                            ' Response successfully received; exit the loop

                            Return result
                        End If

                    End If

                End If
                ' Ignore exception and try the next server
            Catch
            End Try
        Next
        Return result
    End Function

End Class



RE: اريد شرح الكود او توضيح الفكرة العامة له - Omar Mekkawy - 18-10-13

سلام عليكم Big Grin
تم تعديل الموضوع لكي تظهر الاكواد بشكل أجمل Blush

كل عام وانت بخير


RE: اريد شرح الكود او توضيح الفكرة العامة له - @@أبورائد@@ - 18-10-13

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


هذا كود معرفة الوقت والتاريخ من مواقع لديها خدمة توفير التوقيت لمن يستعلم عنها.

يعتمد الكود على مجموعة من 10 سيرفرات يختار منه 5 بشكل عشوائي ويمر عليها بحلقة For فالذي عليه الدور قد أجاب بتنتهي الحلقة فيخرج معيدا لنا النتيجة يتوقيت جرينتش GMT ثم نقوم بوضع ToLocalTime لتحويل النتيجة لفارق التوقيت الخاص بنا.


أرجو أن أكون قد أفدت.


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


RE: اريد شرح الكود او توضيح الفكرة العامة له - الشاكي لله - 18-10-13

السلام عليكم


شرح كل سطر من هذا الكود يحتاج درس كامل

انا بقولك فكرة الكود وعلى اي اساس قام بكتابته

قال صاحب الكود انه اعتمد على موقع http://tf.nist.gov/tf-cgi/servers.cgi

بعد الدخول عليه وجدت هذا السطر ، وهو اللبنة الاساسية لهذا الموضوع

إقتباس :Users of the NIST "DAYTIME" protocol on tcp port 13

يقول لجلب الDateTime قم بالاتصال بأحد السيرفرات حقتهم على البروتوكول Tcp والبورت 13

..

قام صاحبنا بااضافة 10 سيرفرات في الكود (ربما اذا واحد ماعطاه الوقت يستعمل الثاني)

لأن في الموقع مذكورة حالة السيرفر واحيانا يكون Busy فيتأخر الرد (Response)

الرد هو عبارة عن الوقت الي المفروض يعطيك اياه

..

فقام بأخذ 5 سيرفرات عشوائية (لم افهم ليش سوا هالحركة) ليش مااخذ ال10 السيرفرات كاملة

قام بعمل foreach لهذه ال5 السيرفرات .. لو فشل احدهم في الرد ستأخذ foreach السيرفر الي بعده

هذا الكود الرئيسي لجلب الوقت من السيرفر
PHP كود :
' Connect to the server (at port 13) and get the response
                Dim serverResponse As String = String.Empty
                Using reader = New IO.StreamReader(New System.Net.Sockets.TcpClient(server, 13).GetStream())
                    serverResponse = reader.ReadToEnd()
                End Using 

الان شوف الكود الي فوق وقارنه بالكلام المكتوب في الموقع

إقتباس :Users of the NIST "DAYTIME" protocol on tcp port 13


مثل ماتشوف .. صاحبنا طبق الكلام اعلاه في الكود اعلاه

--

بقية الكود اعتقد واضح جدا .. قام ببعض العمليات على ال(Response) الذي قام الموقع

بإعطاه اياه في الكود اعلاه ،، وانت محترف في التعامل مع النصوص . فاعتقد ان الموضوع

مفهوم .

--

في النهاية قام بتحويل الوقت ليتناسب مع منطقتك

PHP كود :
utcDateTime.ToLocalTime 

وهكذا ستحصل على التوقيت المناسب والصحيح



فعلا كود رائع Cool


(18-10-13, 08:25 PM)@@أبورائد@@ كتب : السلام عليكم ورحمة الله وبركاته


هذا كود معرفة الوقت والتاريخ من مواقع لديها خدمة توفير التوقيت لمن يستعلم عنها.

يعتمد الكود على مجموعة من 10 سيرفرات يختار منه 5 بشكل عشوائي ويمر عليها بحلقة For فالذي عليه الدور قد أجاب بتنتهي الحلقة فيخرج معيدا لنا النتيجة يتوقيت جرينتش GMT ثم نقوم بوضع ToLocalTime لتحويل النتيجة لفارق التوقيت الخاص بنا.


أرجو أن أكون قد أفدت.


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


اسف اخي ابو رائد ماشفت ردك



RE: اريد شرح الكود او توضيح الفكرة العامة له - ali.alfoly - 21-10-13

(18-10-13, 04:13 PM)Omar Mekkawy كتب : سلام عليكم Big Grin
تم تعديل الموضوع لكي تظهر الاكواد بشكل أجمل Blush

كل عام وانت بخير

وعليكم السلام ورحمة الله
جزاك الله خيرا

(18-10-13, 08:25 PM)@@أبورائد@@ كتب : السلام عليكم ورحمة الله وبركاته


هذا كود معرفة الوقت والتاريخ من مواقع لديها خدمة توفير التوقيت لمن يستعلم عنها.

يعتمد الكود على مجموعة من 10 سيرفرات يختار منه 5 بشكل عشوائي ويمر عليها بحلقة For فالذي عليه الدور قد أجاب بتنتهي الحلقة فيخرج معيدا لنا النتيجة يتوقيت جرينتش GMT ثم نقوم بوضع ToLocalTime لتحويل النتيجة لفارق التوقيت الخاص بنا.


أرجو أن أكون قد أفدت.


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


وعليكم السلام ورحمة الله
جزاك الله خيرا اخى الحبيب ابو رائد
اسئل الله ان يحفظك ويبارك فيك


(18-10-13, 08:29 PM)الشاكي لله كتب :
السلام عليكم


شرح كل سطر من هذا الكود يحتاج درس كامل

انا بقولك فكرة الكود وعلى اي اساس قام بكتابته

قال صاحب الكود انه اعتمد على موقع http://tf.nist.gov/tf-cgi/servers.cgi

بعد الدخول عليه وجدت هذا السطر ، وهو اللبنة الاساسية لهذا الموضوع

إقتباس :Users of the NIST "DAYTIME" protocol on tcp port 13

يقول لجلب الDateTime قم بالاتصال بأحد السيرفرات حقتهم على البروتوكول Tcp والبورت 13

..

قام صاحبنا بااضافة 10 سيرفرات في الكود (ربما اذا واحد ماعطاه الوقت يستعمل الثاني)

لأن في الموقع مذكورة حالة السيرفر واحيانا يكون Busy فيتأخر الرد (Response)

الرد هو عبارة عن الوقت الي المفروض يعطيك اياه

..

فقام بأخذ 5 سيرفرات عشوائية (لم افهم ليش سوا هالحركة) ليش مااخذ ال10 السيرفرات كاملة

قام بعمل foreach لهذه ال5 السيرفرات .. لو فشل احدهم في الرد ستأخذ foreach السيرفر الي بعده

هذا الكود الرئيسي لجلب الوقت من السيرفر
PHP كود :
' Connect to the server (at port 13) and get the response
                Dim serverResponse As String = String.Empty
                Using reader = New IO.StreamReader(New System.Net.Sockets.TcpClient(server, 13).GetStream())
                    serverResponse = reader.ReadToEnd()
                End Using 

الان شوف الكود الي فوق وقارنه بالكلام المكتوب في الموقع

إقتباس :Users of the NIST "DAYTIME" protocol on tcp port 13


مثل ماتشوف .. صاحبنا طبق الكلام اعلاه في الكود اعلاه

--

بقية الكود اعتقد واضح جدا .. قام ببعض العمليات على ال(Response) الذي قام الموقع

بإعطاه اياه في الكود اعلاه ،، وانت محترف في التعامل مع النصوص . فاعتقد ان الموضوع

مفهوم .

--

في النهاية قام بتحويل الوقت ليتناسب مع منطقتك

PHP كود :
utcDateTime.ToLocalTime 

وهكذا ستحصل على التوقيت المناسب والصحيح



فعلا كود رائع Cool


(18-10-13, 08:25 PM)@@أبورائد@@ كتب : السلام عليكم ورحمة الله وبركاته


هذا كود معرفة الوقت والتاريخ من مواقع لديها خدمة توفير التوقيت لمن يستعلم عنها.

يعتمد الكود على مجموعة من 10 سيرفرات يختار منه 5 بشكل عشوائي ويمر عليها بحلقة For فالذي عليه الدور قد أجاب بتنتهي الحلقة فيخرج معيدا لنا النتيجة يتوقيت جرينتش GMT ثم نقوم بوضع ToLocalTime لتحويل النتيجة لفارق التوقيت الخاص بنا.


أرجو أن أكون قد أفدت.


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


اسف اخي ابو رائد ماشفت ردك

جزاك الله خيرا أخي وحبيبي الشاكي لله
أسئل الله تعالى أن يجزيك خيرا
ويجمعنا فى جنات النعيم
شرح وافى كافي فعلا أبدعت يا بطل


RE: اريد شرح الكود او توضيح الفكرة العامة له - hoob computer - 21-10-13

شرح رائع ... بارك الله فيكم....

و الكود رائع أيضاً Smile



تحياتي