PDA

View Full Version : چند نفر دارن از نرم افزار من استفاده می کنند ؟



dele_ghamgin_2008
جمعه 26 اردیبهشت 1393, 19:09 عصر
من یک نرم افزار می سازم . می خوام حالا قابلیتی ایجاد کنم که بفهمم چند نفر الان این نرم افزار رو باز کردند . توجه : از طریق اینترنت بتونه بگه . لطفاً درمورد دیتابیس چیزی نگید که سر در نمیارم.
ممنون می شوم راهنمایی کنید . می دونم باید چه اتفاقی بیوفته . هر کاربری که نرم افزار رو اجرا میکنه . باید یک مقدار رو بفرسته به یک هاستی . و نرم افزار بیاد بصورت آنلاین اعضای داخل هاست رو بخونه . و اگر کاربر از نرم افزار خارج شد . دوباره از هاست یک عدد رو کم کنه . حالا سوال اینجاست که چگونه ؟
آیا راه بهتری در نظر دارید ؟

shahryari
جمعه 26 اردیبهشت 1393, 19:17 عصر
همه اینها که فرمودید درگرو جمله آخر بند اول فرمایشاتتونه ... "دیتابیس"
اگه فقط تعداد کاربران مد نظره میتونی از فایل متنی هم استفاده کنی

dele_ghamgin_2008
شنبه 27 اردیبهشت 1393, 14:45 عصر
همه اینها که فرمودید درگرو جمله آخر بند اول فرمایشاتتونه ... "دیتابیس"
اگه فقط تعداد کاربران مد نظره میتونی از فایل متنی هم استفاده کنی

متنی هم باشه مشکلی نیست . دیتابیس sql نباشه .

mhsmity
شنبه 27 اردیبهشت 1393, 15:16 عصر
این کاری که دوست ما میگه بشتر به درد برنامه نویسی ویندوز اپلیکیشن میخوره
صحبت از هاست و برنا مه نویسی وب اپلیکیشن هست . درسته ؟

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

NASA's Spaceman
شنبه 27 اردیبهشت 1393, 16:22 عصر
سلام
دقیقا جوابت رو نمیدونم ولی بدون دیتابیس باید از setting ها استفاده کنی به عنوان یه متغیر و بعد هر بار که کاربر انلاین شد یه چیزی مثل خود کامپیتر عدد صفر و یک رو بفرسته به سایت شما
(تو صفحه ایش که خودتون میخواین) بعد اگه جواب یک بود که بگه کاربر داره استفاده میکنه و اگه جواب صفر بود بگه کاربر از نرم افزار استفاده میکنه و تازه از این روش میتونی بفهمی که کدوم کاربرت از کجای دنیا داره از نرم افزارت استفاده میکنه که این دو تا به IP تو مبحث شبکه و دیگری اسم کاربرت تو خود نرم افزار هست
ولی کدنویسیش رو با عرض معذرت خواهی باید بگم یه تیکه از کدنویسیش رو بلد نیستم
با سپاس Spaceman

dele_ghamgin_2008
یک شنبه 28 اردیبهشت 1393, 10:43 صبح
اصلاً این موضوع ربطی به دیتابیس نداره .
نمی دونم چرا دوستان دوست دارن ربطش بدهند . این برنامه باید از طریق اینترنت آنلاین بشه . با یک فایل ساده امکان پذیر هست.

shahryari
یک شنبه 28 اردیبهشت 1393, 11:01 صبح
میتونید یک فایل متنی (با نام count.txt در این مثال) در هاستتون اپلود کنید و هر بار هنگام لود شدن برنامه عدد یک به مقدار داخل فایل متنی اضافه کنید و هنگام بسته شدن برنامه ، عدد یک رو از مقدار کم کنید
باید یک فایل رابط پی اچ پی هم در همون مسیر هاستتون آپلود کنید و کدهای زیر درونش بنویسید که به فایل متنی مقدار بده و ازش بخونه
کد پی اچ پی :

<?php
if (isset($_GET['login']))
{
$login = $_GET['login'];
$count = file_get_contents('count.txt');
if ($login == 0)
{
$count = $count + 1;
file_put_contents('count.txt',$count);
echo $count;
}
else
{
$count = $count - 1;
file_put_contents('count.txt',$count);
echo $count;
}
}
?>

و اینهم کدهای سی شارپ:
System.Net.WebClient w;
void MainFormLoad(object sender, EventArgs e)
{
w= new System.Net.WebClient ();
string s = w.DownloadString("http://localhost/Ali/t.php?login=0");
label1.Text = s.ToString ();
}



void MainFormFormClosing(object sender, FormClosingEventArgs e)
{
w= new System.Net.WebClient ();
string s = w.DownloadString("http://localhost/Ali/t.php?login=1");
}

hamid_hr
یک شنبه 28 اردیبهشت 1393, 11:05 صبح
و هنگام بسته شدن برنامه ، عدد یک رو از مقدار کم کنید

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

shahryari
یک شنبه 28 اردیبهشت 1393, 11:11 صبح
خب امکان داره برنامه به صورت طبیعی بسته نشه مثلا برق سیستم کلاینت قطع بشه

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

hamid_hr
یک شنبه 28 اردیبهشت 1393, 11:20 صبح
خب امارمون درست نیست اون وقت

shahryari
یک شنبه 28 اردیبهشت 1393, 11:23 صبح
خب امارمون درست نیست اون وقت

خب سری بعد که لاگین میشه اون متغیر چک میشه اگه به طور طبیعی بسته نشده باشه ، دیگه لازم نیست اعلام حضور کنه... و امار درسته میشه.. :بامزه:

hamid_hr
یک شنبه 28 اردیبهشت 1393, 11:30 صبح
خب طرف تا دو روز دیگه شاید بازش نکنه
شایدم اصلا بازش نکنه
امارش همیشه اشتباه میشه

NASA's Spaceman
یک شنبه 28 اردیبهشت 1393, 11:32 صبح
طوری نرم افزار رو مینویسن که بار اول به اینترنت مجبور شی وصل شی بعد از دفعات بعد نیازی به انلاین بودن نداره
اینجوری میشه فهمید چند نفر از این نرم افزار استفاده میکنن
با سپاس Spaceman

shahryari
یک شنبه 28 اردیبهشت 1393, 11:36 صبح
خب طرف تا دو روز دیگه شاید بازش نکنه
شایدم اصلا بازش نکنه
امارش همیشه اشتباه میشه

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

dele_ghamgin_2008
دوشنبه 29 اردیبهشت 1393, 10:08 صبح
میتونید یک فایل متنی (با نام count.txt در این مثال) در هاستتون اپلود کنید و هر بار هنگام لود شدن برنامه عدد یک به مقدار داخل فایل متنی اضافه کنید و هنگام بسته شدن برنامه ، عدد یک رو از مقدار کم کنید
باید یک فایل رابط پی اچ پی هم در همون مسیر هاستتون آپلود کنید و کدهای زیر درونش بنویسید که به فایل متنی مقدار بده و ازش بخونه
کد پی اچ پی :

<?php
if (isset($_GET['login']))
{
$login = $_GET['login'];
$count = file_get_contents('count.txt');
if ($login == 0)
{
$count = $count + 1;
file_put_contents('count.txt',$count);
echo $count;
}
else
{
$count = $count - 1;
file_put_contents('count.txt',$count);
echo $count;
}
}
?>

و اینهم کدهای سی شارپ:
System.Net.WebClient w;
void MainFormLoad(object sender, EventArgs e)
{
w= new System.Net.WebClient ();
string s = w.DownloadString("http://localhost/Ali/t.php?login=0");
label1.Text = s.ToString ();
}



void MainFormFormClosing(object sender, FormClosingEventArgs e)
{
w= new System.Net.WebClient ();
string s = w.DownloadString("http://localhost/Ali/t.php?login=1");
}

هرکاری کردم این کدها کار نکرد . میشه برنامه آمادشو برام ارسال کنید !؟ ویژوئل استادیو 10 دارم.

w = new System.Net.WebClient(); string s = w.DownloadString("http://www.aradseo.net/Talia/t.php?login=0");
label1.Text = s.ToString();