ورود

نسخه کامل مشاهده نسخه کامل : مشکل در تشخیص رفتن برق در برنامه تحت شبکه



MTPROG
05-07-2010, 17:07
من یک برنامه تحت شبکه دارم که هر کاربر که تو سیستم تعریف میشه یک فیلد از نوع Boolean داره که True میشه و وقتی هم خارج میشه اون فیلد false میشه و وقتی کاربر میخواهد وارد سیستم بشه بررسی میشه که آیا قبلا وارد شده یا نه اگر قبلا وارد شده باشه اجاره ورود مجدد نداره
در کل با یک نام کاربری نمیشه دوبار وارد شد (به خاطر مسایل مالی نرم افزار که حداکثر با 4 کاربر باید کار کنن)

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

آیا کسی نظری برای این مشکل دار؟

_H2_
05-07-2010, 19:59
سلام
اصولاً در ارتباطات شبکه ای شما نمیتوانید راه کار کامل و دقیقی برای قطع اتصال داشته باشید برای همین از زمان Timeout ای برای جلسه کاربری استفاده میشود.

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

علاوه بر مورد فوق شما به راحتی میتوانید در یک برنامه WinApp ، ماژول اضافه ای داشته باشند که مثلاً حداقل هر 1 و حداکثر هر 5 دقیقه فعال بودن خودش را به سرور اصلی اعلام کند.
این اعلام کردن میتواند به وسیله هر نوع ارتباط و الگوریتمی انجام شود.

سرور بعد از گشتن این زمان (ترجیحاً دو برابر زمان قبلی) کلاینت را دیسکانکت شده تصور کند.

موفق باشید.

MTPROG
06-07-2010, 08:30
این روش برای کلاینتها تا حدی جواب میده اما برای خود سرور اگه خاموش بشه یا برنامه هنگ کنه و خارج بشه چی؟

آیا سرویس های SQl SERVER منجمله Integrate Service امکاناتی برای این مواقع ندارند؟

عــــلی
06-07-2010, 12:34
سلام دوست من.

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

آیا سرویس های SQl SERVER منجمله Integrate Service امکاناتی برای این مواقع ندارند؟
هیچ راهی نیست.
کمی هم فکر کنیم میبینیم که به وسیله نرم افزار نمیشه برق رو کنترال کرد و فمید که برق کاربر قطع شده.
موفق باشید.