PDA

View Full Version : سوال: كاربران آنلاين در نرم افزار



parselearn
چهارشنبه 22 آبان 1387, 07:01 صبح
با سلام
من يك برنامه براي اينترنت نوشتم
حالا مي خوام ببينم كاربران آنلاين در اين نرم افزار چند نفر هستن براي اينكار چه الگوريتم يا كدي داريد

sina26
چهارشنبه 22 آبان 1387, 09:09 صبح
سورس برنامه رو بذار تا برنامه رو ببینیم و راه حل خودمون رو بدیم

mpmsoft
چهارشنبه 22 آبان 1387, 09:14 صبح
دوست عزیز شما باید برنامه تون مبتنی بر TCP و Winsock طراحی بشه و تحت ServerBase

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

مهران رسا
چهارشنبه 22 آبان 1387, 09:52 صبح
دوست عزیز شما باید برنامه تون مبتنی بر TCP و Winsock طراحی بشه و تحت ServerBase

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

درسته که در این صورت باید یک سرور داشته باشیم که تمام وقت به اینترنت متصل باشه و درخواست ها رو چک کنه ..
یا مثلاً می تونیم مجوز ورود به سیستم رو فقط از ساعت 8 تا 10 صبح تعیین کنیم .

r0ot$harp
چهارشنبه 22 آبان 1387, 11:48 صبح
دوست عزیز من برای این کار راه حل بهتری دارم . یه صفحه PHP می سازین و بعد اون رو آپلود می کنید رویه یه هاست PHP . بعد داخل این صفحه یه سری کوئری می نویسین که از طریق Winsock بتونید باهاش کار کنید . برای بدست آوردن لیست آنلاین هم به این سرور وصل می شن و ازش اطلاعات می گیرن . این کار از همه چی بهتره . دیتابیس هم Sql Server هست با سرعت بالا .






باتشکر احسان

مهران رسا
چهارشنبه 22 آبان 1387, 17:14 عصر
دوست عزیز من برای این کار راه حل بهتری دارم . یه صفحه PHP می سازین و بعد اون رو آپلود می کنید رویه یه هاست PHP . بعد داخل این صفحه یه سری کوئری می نویسین که از طریق Winsock بتونید باهاش کار کنید . برای بدست آوردن لیست آنلاین هم به این سرور وصل می شن و ازش اطلاعات می گیرن . این کار از همه چی بهتره . دیتابیس هم Sql Server هست با سرعت بالا .


باتشکر احسان



این روش که واقعاً عالیه . منتها در صورتی که ، شما واسه ما توضیح بدین چه جوری از طریق Winsock میشه به جداول php دسترسی پیدا کرد ؟

mpmsoft
چهارشنبه 22 آبان 1387, 18:03 عصر
دوست عزیز من فرض رو بر این گرفتم که شبکه Local باشه نه Wan

من فکر می کنم استفاده از Webservice ها خیلی بهتر از کار با PHP - Winsock باشه

مهران رسا
پنج شنبه 23 آبان 1387, 11:58 صبح
دوست عزیز من فرض رو بر این گرفتم که شبکه Local باشه نه Wan
من فکر می کنم استفاده از Webservice ها خیلی بهتر از کار با PHP - Winsock باشه



من يك برنامه براي اينترنت نوشتم


آیا در VB امکان استفاده از Web سرویس ها وجود داره ؟!!

mpmsoft
پنج شنبه 23 آبان 1387, 14:58 عصر
بله این امکان وجود داره

مهران رسا
پنج شنبه 23 آبان 1387, 15:28 عصر
بله این امکان وجود داره

چه جوری ؟ !! ...

mpmsoft
پنج شنبه 23 آبان 1387, 17:48 عصر
این یک نمونه کد


Private Sub Command1_Click()
' Start Internet Explorer and type in the url of your webservice page
' i.e.: http://localhost/myweb/mywebService.asmx
' In that page, click on the link to the method you want to call from your application
' Select in upper POST section the xml code from
' Copy this into the strXml variable, escape all quotes and replace "string" your parameter value
' Copy the url to your webservice page (asmx) to the strUrl variable
' Copy the SOAPAction value to the strSoapAction variable

Dim strSoapAction As String
Dim strUrl As String
Dim strXml As String
Dim strParam As String

txtOutput.Text = ""
strParam = "MyParameterString"
strUrl = "http://localhost/myweb/mywebService.asmx"
strSoapAction = "http://tempuri.org/MyMethod"


strXml = "" & _
"" & _
"" & _
"" & _
"" & strParam & "" & _
"" & _
"" & _
""

' Call PostWebservice and put result in text box
Debug.Print PostWebservice(strUrl, strSoapAction, strXml)

End Sub


Private Function PostWebservice(ByVal AsmxUrl As String, ByVal SoapActionUrl As String, ByVal XmlBody As String) As String
Dim objDom As Object
Dim objXmlHttp As Object
Dim strRet As String
Dim intPos1 As Integer
Dim intPos2 As Integer

On Error GoTo Err_PW

' Create objects to DOMDocument and XMLHTTP
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")

' Load XML
objDom.async = False
objDom.loadXML XmlBody

' Open the webservice
objXmlHttp.open "POST", AsmxUrl, False

' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.setRequestHeader "SOAPAction", SoapActionUrl

' Send XML command
objXmlHttp.send objDom.xml

' Get all response text from webservice
strRet = objXmlHttp.responseText

' Close object
Set objXmlHttp = Nothing

' Extract result
intPos1 = InStr(strRet, "Result>") + 7
intPos2 = InStr(strRet, " 7 And intPos2 > 0 Then
strRet = Mid(strRet, intPos1, intPos2 - intPos1)
End If

' Return result
PostWebservice = strRet

Exit Function
Err_PW:
PostWebservice = "Error: " & Err.Number & " - " & Err.Description

End Function


توضیحات بیشتر در لینک زیر :
http://www.aspfree.com/c/a/VB.NET/Calling-a-Web-Service-using-VB6-with-SOAP-30/

مهران رسا
پنج شنبه 23 آبان 1387, 18:10 عصر
خیلی ممنون .
اگه اشتباه نکنم این کد مربوط به Client هست . در مورد Server چه کارهایی باید انجام بشه ؟!!

mpmsoft
پنج شنبه 23 آبان 1387, 18:16 عصر
دوست عزیز شما باید وب سرویس ها رو توسط دات نت طراحی کنید

وب سرویسها مشابه فانکشنهای آن لاینی می باشند که همیشه درحال Listen کردن می باشند

مهران رسا
پنج شنبه 23 آبان 1387, 18:18 عصر
ممنون .
برای ارتباط با صفحات php راه حلی دارید ؟!

r0ot$harp
پنج شنبه 23 آبان 1387, 22:05 عصر
ممنون .
برای ارتباط با صفحات php راه حلی دارید ؟!

در این مورد باید یه خورده در مورد توابع PHP اطلاعات کسب کنید .

بهترین تابع برای این کار

$_POST[""]

تابع بالا می باشد .


در مورد کار هم برنامه Fake Mail من رو نگاه کنید متوحه می شید . در ضمن یه مقاله هم گذاشتم .





باتشکر احسان

parselearn
جمعه 24 آبان 1387, 01:53 صبح
بـــــــــــــــــــله
چي شد
از همه دوستاني كه نظراتشون رو گفتند ممنونم
اما من سايت ندارم كه اين كارها رو بكنم
با هاستهاي رايگان نميشه چنين كارهايي كرد؟ (parsaspace,persiangig)

مهران رسا
جمعه 24 آبان 1387, 09:13 صبح
در مورد کار هم برنامه Fake Mail من رو نگاه کنید متوحه می شید . در ضمن یه مقاله هم گذاشتم .



ممنون . لطفاً لینک مقالتون رو توی همین تاپیک پست کنید .

r0ot$harp
جمعه 24 آبان 1387, 10:45 صبح
ممنون . لطفاً لینک مقالتون رو توی همین تاپیک پست کنید .

دوست عزیز اینم خدمت شما :


http://barnamenevis.org/forum/showthread.php?t=124416





باتشکر احسان