PDA

View Full Version : گرفتن تاریخ و زمان از سرور



mhmoein
شنبه 23 اردیبهشت 1391, 18:24 عصر
با سلام خدمت دوستان عزیز
میخواستم بدونم آیا کدی هست که بتونم ساعت و زمان رو از سرور دریافت کنم و در برنامه نشون بدم؟

mahyar_net
شنبه 23 اردیبهشت 1391, 18:52 عصر
"SELECT SYSDATETIME()"

mhmoein
شنبه 23 اردیبهشت 1391, 19:03 عصر
ببخشید متوجه نشدم از این کد چطوری می تونم استفاده اگر توضیح کاملتری بدید ممنونم می شم.

barbodsoft.com
شنبه 23 اردیبهشت 1391, 19:36 عصر
تو این تاپیک پست 7 (http://barnamenevis.org/showthread.php?339038-%D8%A8%D9%87-%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%D8%B5%D9%84%D9%87-%D8%B2%D9%85%D8%A7%D9%86%DB%8C-(%D8%A8%D8%AF%D9%88%D9%86-%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C-%D8%A8%D9%87-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85)&p=1499664&viewfull=1#post1499664)به همراه یک پروژه توضیح دادم قبلا.

mhmoein
شنبه 23 اردیبهشت 1391, 19:48 عصر
دوست عزیز ممنون از راهنمایی شما اما من میخوام از طریق سرور شبکه داخلی LAN تاریخ و زمان رو بگیرم این پروژه شما از طریق وب پارامتر را دریافت می کند.

M.KH-SH
شنبه 23 اردیبهشت 1391, 20:05 عصر
دوست عزیز شما در بخش سرور یک بار زمان سیستم رو به کلاینت ارسال کن و در کلاینت با یک تایمر زمان رو به جلو هدایت کن و یا نه کلا یک تایمر بزار رو کلاینت و با اون زمان رو ارسال کن برای کلاینت ها

متاسفانه زمانی که چند کلاینت باهم به سرور بخوان در ارتباط باشن رو نمیدونم باید به چه صورت عمل کرد

اگه امکان داره توضیح بدین در این رابطه

پرتوکولی که استفاده میکنم tcp هستش

mhmoein
شنبه 23 اردیبهشت 1391, 21:33 عصر
بله دوست عزیز از پروتکل TCP استفاده می کنم

فرید نجفلو
شنبه 23 اردیبهشت 1391, 21:52 عصر
سلام
دوست عزیز شما توضیح کافی ندادید
یعنی شما نگفتید منظور از سرور چی هست
یک سیستم دارید که به عنوان سرور شبکه هست(ویندوز سرور)
یک برنامه کلاینت/سرور با ریموتینگ یا WCF و ... ایجاد کردید
سرور SQL مد نظره
یک وب سرویس یا وب سایت رو میگید
و ...
هر کدوم از موارد بالا روش خاص خودشون رو دارن
حالا منظور شما چیه؟!

mhmoein
شنبه 23 اردیبهشت 1391, 22:22 عصر
دوست عزیز من یک سرور شبکه دارم (ویندوز سرور 2008) می خوام برنامه بتونه زمان و تاریخ رو از این سرور دریافت کنه

M.KH-SH
شنبه 23 اردیبهشت 1391, 22:24 عصر
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
Label1.Text = Now.Hour & ":" & Now.Minute & ":" & Now.Second
If Len(Me.Text) > 5 Then

Dim ip As New IPEndPoint(IPAddress.Parse(Me.Text), 9091)
Dim sr As New Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
sr.Connect(ip)
Dim s As String = "ti*" & Label1.Text
sr.Send(Encoding.UTF8.GetBytes(s))
sr.Close()
End If
Catch ex As Exception

End Try

End Sub


روشی که من استفاده میکنم که زمان رو در سیستم کلاینت به نمایش بزارم

و ایپی سیستم کلاینت رو از me.text دریافت میکنم شما اونو خودت قرار بده

در سیستم کلاینت هم بر اساس حرف ti* متن ورودی رو مدیریت میکنم و به نمایش میزارم که در بقیه کامنت ها مشکلی ایجاد نشه

barbodsoft.com
یک شنبه 24 اردیبهشت 1391, 00:39 صبح
دوست عزیز ممنون از راهنمایی شما اما من میخوام از طریق سرور شبکه داخلی LAN تاریخ و زمان رو بگیرم این پروژه شما از طریق وب پارامتر را دریافت می کند.
ببخشید خوب مطلب رو نحوندم . و از اونجایی که خودم درگیر گرفتن تاریخ و زمان از اینترنت بودم خود به خود فکر به اون سمت منحرف شد.

فرید نجفلو
یک شنبه 24 اردیبهشت 1391, 12:29 عصر
سلام
من از کد های دوستمون M.KH-SH (http://barnamenevis.org/member.php?220554-M.KH-SH) سر در نیاوردم!!
اگه اون کد درست کار می کنه لطف کنید بیشتر توضیح بدید چون تعداد خطوطش کمه اگه درست کار کنه بهتر از کد ها بنده ست که پایین آوردم
این کد رو خودم تست کردم و مشکلی نداشت و با فایروال (بنده) هم سازگار هست

Imports System.Runtime.InteropServices


Private Declare Unicode Function NetRemoteTOD Lib "netapi32" ( _
<MarshalAs(UnmanagedType.LPWStr)> ByVal ServerName As String, _
ByRef BufferPtr As IntPtr) As Integer
Private Declare Function NetApiBufferFree Lib "netapi32" (ByVal Buffer As IntPtr) As Integer
Structure TIME_OF_DAY_INFO
Dim tod_elapsedt As Integer
Dim tod_msecs As Integer
Dim tod_hours As Integer
Dim tod_mins As Integer
Dim tod_secs As Integer
Dim tod_hunds As Integer
Dim tod_timezone As Integer
Dim tod_tinterval As Integer
Dim tod_day As Integer
Dim tod_month As Integer
Dim tod_year As Integer
Dim tod_weekday As Integer
End Structure
Function GetNetRemoteTOD(ByVal strServerName As String) As Date
Try
Dim iRet As Integer
Dim ptodi As IntPtr
Dim todi As TIME_OF_DAY_INFO
Dim dDate As Date
strServerName = strServerName & vbNullChar
iRet = NetRemoteTOD(strServerName, ptodi)
If iRet = 0 Then
todi = CType(Marshal.PtrToStructure(ptodi, GetType(TIME_OF_DAY_INFO)), TIME_OF_DAY_INFO)
NetApiBufferFree(ptodi)
dDate = DateSerial(todi.tod_year, todi.tod_month, todi.tod_day) + " " + _
TimeSerial(todi.tod_hours, todi.tod_mins - todi.tod_timezone, todi.tod_secs).ToString("HH:mm:ss")
GetNetRemoteTOD = dDate
Else
MsgBox("Error retrieving time")
End If
Catch
MsgBox("Error in GetNetRemoteTOD: " & Err.Description)
End Try
End Function
Private Sub btnGetDateTime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetDateTime.Click
Dim dRemoteDate As Date
dRemoteDate = GetNetRemoteTOD(txtServerName.Text)
lblRemoteDateTimeValue.Text = dRemoteDate.ToString
End Sub

مقدار SarverName می تونه IP (مثل 192.168.0.1) یا نا کامپیوتر باشه (مثل MyServerComputerName)

M.KH-SH
یک شنبه 24 اردیبهشت 1391, 14:32 عصر
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
Label1.Text = Now.Hour & ":" & Now.Minute & ":" & Now.Second
If Len(Me.Text) > 5 Then

Dim ip As New IPEndPoint(IPAddress.Parse(Me.Text), 9091)
Dim sr As New Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
sr.Connect(ip)
Dim s As String = "ti*" & Label1.Text
sr.Send(Encoding.UTF8.GetBytes(s))
sr.Close()
End If
Catch ex As Exception

End Try

End Sub



خط اول:: یک لیبل یا یک متغییر برای دریافت و نمایش ساعت سیستم (سمت سرور)

خط دوم:: دستوری برای چک کردن ip کامپیوتر کلاینت (در برنامه خودم گذاشتم اگه نخواستین حذف کنین)

خط سوم:: معرفی ip و پرت مورد نظر
خط چهارم :: معرفی ip و پرت و مشخص کردن پرتوکل مورد استفاده
خط پنجم:: اتصال به پرت و ip مورد نظر
خط ششم:: معرفی متغییر از نوع استرینگ که زمان و کلمه ti* رو داخل اون وارد کردم
خط هفتم :: ارسال اون متغییر به صورت باینری
خط هشتم:: بستن

توضیح خط ششم برای سمت کلاینت:::

کلمه ti* در کدنویسی بالا به معنای زمان هستش و بر اساس * دستورات رو تفکیک میکنم و بعد از تفکیک دستورات در سمت کلاینت ti رو شناسایی و بر اساس مقداری که با خود داره متن رو مدیریت میکنم و به نمایش میزارم


تمام کدها هم داخل یک تایمر با اینتر وال 1000 قرار داده شده است (سمت سرور)


در صورت مشکل با فایروال ، فایروال رو از طریق کد در فرم لود غیر فعال کنید

فرید نجفلو
یک شنبه 24 اردیبهشت 1391, 15:27 عصر
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
Label1.Text = Now.Hour & ":" & Now.Minute & ":" & Now.Second
If Len(Me.Text) > 5 Then

Dim ip As New IPEndPoint(IPAddress.Parse(Me.Text), 9091)
Dim sr As New Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
sr.Connect(ip)
Dim s As String = "ti*" & Label1.Text
sr.Send(Encoding.UTF8.GetBytes(s))
sr.Close()
End If
Catch ex As Exception

End Try

End Sub



خط اول:: یک لیبل یا یک متغییر برای دریافت و نمایش ساعت سیستم (سمت سرور)

خط دوم:: دستوری برای چک کردن ip کامپیوتر کلاینت (در برنامه خودم گذاشتم اگه نخواستین حذف کنین)

خط سوم:: معرفی ip و پرت مورد نظر
خط چهارم :: معرفی ip و پرت و مشخص کردن پرتوکل مورد استفاده
خط پنجم:: اتصال به پرت و ip مورد نظر
خط ششم:: معرفی متغییر از نوع استرینگ که زمان و کلمه ti* رو داخل اون وارد کردم
خط هفتم :: ارسال اون متغییر به صورت باینری
خط هشتم:: بستن

توضیح خط ششم برای سمت کلاینت:::

کلمه ti* در کدنویسی بالا به معنای زمان هستش و بر اساس * دستورات رو تفکیک میکنم و بعد از تفکیک دستورات در سمت کلاینت ti رو شناسایی و بر اساس مقداری که با خود داره متن رو مدیریت میکنم و به نمایش میزارم


تمام کدها هم داخل یک تایمر با اینتر وال 1000 قرار داده شده است (سمت سرور)


در صورت مشکل با فایروال ، فایروال رو از طریق کد در فرم لود غیر فعال کنید

سلام
قبل از هر چیز از توضیحات شما تشکر می کنم
ولی روش شما چند اشکال داره
اینکه ما باید یک برنامه (نوشته شده توسط خودمون) در حال اجرا داشته باشیم
و اینکه حتما سرور باید آی پی کلاینت ها رو بدونه اینم یا امکان پذیر نیست یا مشکلات جدی رو همراه داره
مثلا فکر کنید آی پی کلاینت ها با DHCP تعیین می شه و این یعنی در هر بار شروع به کار سیستم یک آی پی جدید به اون اختصاص داده می شه!
و اینکه با یه تایمر همیشه در حال ارسال اطلاعات باشیم (مخصوصا اگه تعداد کلاینت ها زیاد باشه) ترافیک شبکه رو بالا می بره
امنیت هم که باید در نظر گرفته باشه
در ضمن اگه قرار باشه ما یک برنامه در حال اجرا در سرور داشته باشیم در این صورت بهترین گزینه Remoting هست که هیچکدوم از مشکلات بالا رو نداره

و در نمونه کد بنده در بالا هم فقط شما به آی پی یا نام سرور نیاز دارید که هیچ مشکلی نداره چون کلاینتی که نام سرورش رو ندونه به هیچ دردی نمی خوره ولی امکان داره که سرور نیاز به دونستن آی پی کلاینت نداشته باشه

(راستی امید وارم مطالب بالا رو حمل بر بی ادبی ندونید.چون فکر میکنم در این اواخر از چند تا پست شما انتقاد کردم که فقط قصد نیک بوده و بس)

mhmoein
یک شنبه 24 اردیبهشت 1391, 19:45 عصر
سلام
من از کد های دوستمون M.KH-SH (http://barnamenevis.org/member.php?220554-M.KH-SH) سر در نیاوردم!!
اگه اون کد درست کار می کنه لطف کنید بیشتر توضیح بدید چون تعداد خطوطش کمه اگه درست کار کنه بهتر از کد ها بنده ست که پایین آوردم
این کد رو خودم تست کردم و مشکلی نداشت و با فایروال (بنده) هم سازگار هست

Imports System.Runtime.InteropServices


Private Declare Unicode Function NetRemoteTOD Lib "netapi32" ( _
<MarshalAs(UnmanagedType.LPWStr)> ByVal ServerName As String, _
ByRef BufferPtr As IntPtr) As Integer
Private Declare Function NetApiBufferFree Lib "netapi32" (ByVal Buffer As IntPtr) As Integer
Structure TIME_OF_DAY_INFO
Dim tod_elapsedt As Integer
Dim tod_msecs As Integer
Dim tod_hours As Integer
Dim tod_mins As Integer
Dim tod_secs As Integer
Dim tod_hunds As Integer
Dim tod_timezone As Integer
Dim tod_tinterval As Integer
Dim tod_day As Integer
Dim tod_month As Integer
Dim tod_year As Integer
Dim tod_weekday As Integer
End Structure
Function GetNetRemoteTOD(ByVal strServerName As String) As Date
Try
Dim iRet As Integer
Dim ptodi As IntPtr
Dim todi As TIME_OF_DAY_INFO
Dim dDate As Date
strServerName = strServerName & vbNullChar
iRet = NetRemoteTOD(strServerName, ptodi)
If iRet = 0 Then
todi = CType(Marshal.PtrToStructure(ptodi, GetType(TIME_OF_DAY_INFO)), TIME_OF_DAY_INFO)
NetApiBufferFree(ptodi)
dDate = DateSerial(todi.tod_year, todi.tod_month, todi.tod_day) + " " + _
TimeSerial(todi.tod_hours, todi.tod_mins - todi.tod_timezone, todi.tod_secs)
GetNetRemoteTOD = dDate
Else
MsgBox("Error retrieving time")
End If
Catch
MsgBox("Error in GetNetRemoteTOD: " & Err.Description)
End Try
End Function
Private Sub btnGetDateTime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetDateTime.Click
Dim dRemoteDate As Date
dRemoteDate = GetNetRemoteTOD(txtServerName.Text)
lblRemoteDateTimeValue.Text = dRemoteDate.ToString
End Sub

مقدار SarverName می تونه IP (مثل 192.168.0.1) یا نا کامپیوتر باشه (مثل MyServerComputerName)

دوست عزیز کدهای شما خیلی عالی بود و دقیقا همان چیزی بود که می خواستم اما یه مشکلی هست از ساعت 12 نیمه شب به بعد تا ساعت 4:30 صبح برنامه عمل نمی کنه خطای زیر رو نشون می ده! لطفا راهنمایی کنید

فرید نجفلو
یک شنبه 24 اردیبهشت 1391, 21:20 عصر
سلام
این قسمت رو اصلاح کنید:
dDate = DateSerial(todi.tod_year, todi.tod_month, todi.tod_day) + " " + _
TimeSerial(todi.tod_hours, todi.tod_mins - todi.tod_timezone, todi.tod_secs).ToString("HH:mm:ss")

M.KH-SH
یک شنبه 24 اردیبهشت 1391, 22:39 عصر
توضیحات بسیار خوبی بود

برای این کار هم راه حلی داره

کلاینت ها بعد از اتصال به سرور ایپی خودشون رو در لوگ سیتم قرار میدن و براساس ایپی ارسال شده توسط کلاینت ها سرور اقدام به ارسال زمان میکند

البته روش کد نویسی من به صورت انالیز متنی هستش و بر اساس متون و دستوراتی که ارسال میشه برنامه حساس شده

برای گرفتن ایپی هرسیستم به راحتی از توابع DNS میشه نام سرور نام کلاینت و ایپی اون سیستم رو در آورد

برنامه بالا از طریق ایپی های نشنال هم تست شده و به راحتی جواب گویی میکنه

بافر ارسال شده بسیار کم حجم هستش

در صورتی که خیلی شبکه رو اشغال نگه داره اون رو به پرت مخصوص دیگری انتقال داده میشه که به هیچ عنوان مشکلی ایجاد نشه.



بازم از توضیحاتی که شما دادین بسیار سپاسگذار هستم و بسیار استقبال میکنم که ایراد کارم گفته بشه و بتونم اون رو اصلاح کنم


راستی دوست عزیز برنامه های سرور کلاینتی رو برای این میسازن تمامی دستورات رو مدیریت کنن و به امنیت بانک و دیتا اصلی صدمه ای وارد نشه و در محیط امن این دیتا انتقال پیدا کنه

برای این کار ها هم از توابع هشی که خودم این توابع رو ساختم استفاده میکنم و دیگه هیچ مشکلی برام پیش نیومده جز در ویندوز 7 61 بیتی

اگر در این باره اطلاعاتی دارین بگین ::

مشکل

دریافت اطلاعات از سرور با مشکل مواجه هست

حتی زمانی که firewall غیر فعال هستش

فرید نجفلو
یک شنبه 24 اردیبهشت 1391, 23:48 عصر
سلام مجدد
دوست عزیز همونطور که گفتم اگر قرار باشه ما یک برنامه در حال اجرا تو سرور داشته باشم بهترین ، راحترین ، امن ترین و قدرتمند ترین از نظر بنده ریموتینگ هست من خودم با ریموتینگ خیلی کار کردم و قدرت واقعی اون رو دیدم واسه همینه که روش پا فشاری می کنم
البته ما WCF رو هم داریم که که بسیار قدرمند تر و از ریموتینگ هست (به زبان عامیانه محشره) ولی معمولا اگه از WCF استفاده بشه از تمام قدرتش بهره نمی بریم و تقریبا با معادل های ریموتینگ اون سر و کار داریم در حالی که داریم هزینه WCF رو می دم و اینکه برنامه نویسی ریموتینگ بسیار آسان تر و روان تر از WCF هست

اگه بخوام یه مثال از قدرت ریموتینگ بزنم این هست که خودم با همین یک برنامه ریموت دسکتاپ (کنترل کامل یه سیستم دیگه از راه دور ) ساختم به اضافه کلی امکانت نظیر مدیریت فایل ریموت
شمایی که با سوکتینگ کار کردید می دونید با سوکتینگ این کار ها خیلی سخته
جالبترین نکته تو برنامه من اینکه کل کلاینت و سرور (با کلیه امکاناتش) تقریبا 800 -900 خط بیشتر نیست!!!

اگه توضیحات بیشتری خواستید در خدمتم

M.KH-SH
دوشنبه 25 اردیبهشت 1391, 00:56 صبح
دقیقا من با سوکت یک ریموت دسکتاپ ساختم و کنترول کامل ویندوز رو در اختیار گرفتم.

دوست عزیز میشه بیشتر توضیح بدین و نمونه کد قرار بدین

زگهواره تا گور دانش بجوی

فرید نجفلو
دوشنبه 25 اردیبهشت 1391, 14:47 عصر
دقیقا من با سوکت یک ریموت دسکتاپ ساختم و کنترول کامل ویندوز رو در اختیار گرفتم.

دوست عزیز میشه بیشتر توضیح بدین و نمونه کد قرار بدین

زگهواره تا گور دانش بجوی

سلام
خوشحالم که اینو می بینم فکر کنم باید باهم یه بحث اساسی در این مورد داشته باشیم
در مورد ریموتینگ چیز هایی تو این تاپیک (http://barnamenevis.org/showthread.php?321169-آموزش-مدیریت-ارسال-و-دریافت-اطلاعات-در-محیط-شبکه-(Server-Client)&p=1408841&viewfull=1#post1408841)هست
راستی شما فقط برای ریموت دسکتاپ کلا چند خط نوشتید؟ (البته مسئله راحت ، روان و قابل درک بودن کد ها باشه واسه بعد)
من در سمت کلاینت حدودا 400 و در سرور (250) خط دارم البته می شد کمتر باشه چون مقداری از اون واسه امکانات هست مثل تبدیل تصاویر دریافتی به انوع فرمت ها (Bmp,Jpg,Png,...) و یا تنظیم کیفیت تصاویر ارسالی (کم کردن حجم دیتا ها)

M.KH-SH
دوشنبه 25 اردیبهشت 1391, 18:21 عصر
خوب شد گفتین کم کردن حجم عکس
میشه راهنمایی کنین که چطور میشه عکس ارسالی رو از سیستم کلاینت کم کرد؟

بخش کلاینت 146 خط

بخش سرور 81 خط

برای ریموت از Declare Function SetCursorPos& Lib "user32.dll" (ByVal p As Point) استفاده کردم

شما چطور

فرید نجفلو
دوشنبه 25 اردیبهشت 1391, 18:54 عصر
سلام مجدد


برای ریموت از Declare Function SetCursorPos& Lib "user32.dll" (ByVal p As Point) استفاده کردم

شما چطور
فکر کنم همش رو نگفتید:چشمک:
چون ریموت حداقل باید کلیک داشته باشه
چون من هم رویداد موس دارم هم کیبور (تایپ ریموت):
Public Declare Auto Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Declare Auto Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

و اینکه نیازی به اون تابع API ندارید:

Windows.Forms.Cursor.Position = ScreenPint



میشه راهنمایی کنین که چطور میشه عکس ارسالی رو از سیستم کلاینت کم کرد؟

Imaging.EncoderParameter(Imaging.Encoder.Quality, Qulity)

M.KH-SH
دوشنبه 25 اردیبهشت 1391, 19:29 عصر
اره خوب ولی من تو برنامه از کیبورد استفاده نکردم فقط نمایش دسکتاپ و تکون موس و دکمه های اون

کلا حال میده :دی

Imaging.EncoderParameter(Imaging.Encoder.Quality, Qulity)

میشه راجع به کد بالا و نحوه استفاده اون توضیح بدین

مرسی

فرید نجفلو
دوشنبه 25 اردیبهشت 1391, 21:09 عصر
اره خوب ولی من تو برنامه از کیبورد استفاده نکردم فقط نمایش دسکتاپ و تکون موس و دکمه های اون

کلا حال میده :دی

Imaging.EncoderParameter(Imaging.Encoder.Quality, Qulity)

میشه راجع به کد بالا و نحوه استفاده اون توضیح بدین

مرسی

اگه تو MSDN یا اینترنت بگردید پیدا می کنید
اینجا نمی شه توضیح داد هم محلش تو این تاپیک نیست و هم چون مسئله Codec ها پیش میاد کد یکم طولانی میشه!

alimanam
سه شنبه 26 اردیبهشت 1391, 23:19 عصر
با سلام


میخواستم بدونم آیا کدی هست که بتونم ساعت و زمان رو از سرور دریافت کنم و در برنامه نشون بدم؟

نظر من این هستش که با توجه به راحتی و انعطاف وب سرویس ها به راحتی میتونین یک وب سرویس ساده بنویسین که حاوی تابع تاریخ و زمان سرور باشه . خوب حالا کافیه در برنامه خودتون این وب سرویس رو صدا بزنین . برای مثال :


http://127.0.0.1/Service1.asmx

شما باید به جای آی پی لوکالی که الان هست آی پی سرور رو مشخص کنین .

موفق باشید ./

swallow.pa
جمعه 29 اردیبهشت 1391, 09:28 صبح
دوستان ميشه توضيح بديد چه نيازي هست كه تاريخ از سرور خونده بشه و از لوكال خونده نشه
ممنون

فرید نجفلو
جمعه 29 اردیبهشت 1391, 11:28 صبح
سلام
یکی از دلایلش اینکه در یک برنامه تحت شبکه تاریخ و ساعت کلیه کلاینت ها از یک مکان بیاد تا همگی دارای یک زمان همسان باشن
چون ممکنه تاریخ کلاینت ها یکی نباشه مثلا به دلیل عدم تنظیم صحیح ، اشتباهات کاربر یا از روی عمد جهت سوء استفاده(پنهان کردن زمان صحیح فعالیت) و ...

دلایل دیگه هم ممکنه باشه

alimanam
جمعه 29 اردیبهشت 1391, 15:23 عصر
با سلام

دوستان درخواست کردن که روشی رو که در پست شماره 25 توضیح دادم رو به صورت یک پروژه نمایش بدم . میتونین نگاه کنین کار بسیار ساده ایی ایست و البته بسیار جالب .

البته توجه کنین که برای اینکه بتونین از وب سرویس چه به صورت لوکال و چه به صورت Remote استفاده کنین باید IIS نصب شده باشه . برای مثال شما بعد از اینکه IIS رو نصب کردین به مسیر SystemDriveName:\inetpub\wwwroot برین و فایل های

Service1.asmx
Web.config

و پوشه Bin که در پروژه وب سرویس بعد از Build شدن پروژه ساخته میشه رو در همون مسیر کپی کنین .

موفق باشید ./

cproir
سه شنبه 08 مرداد 1392, 13:34 عصر
سلام دوستان
من از آقای فرید نجفلو بابت کدی که نوشته بودند تشکر می کنم
خیلی عالی بود