View Full Version : سوال: بررسی وضعیت کلاینت ها
ali_00815
شنبه 11 اردیبهشت 1395, 08:26 صبح
با سلام و وقت بخیر
پروژه ای بصورت سرور و کلاینت را در نظر بگیرید
در صورت بستن کلاینت یا قطع ارتباط قطعا سرور وضعیت را بررسی و اتصال را قطع اعلام میکند
اما حال در نظر بگیرید شبکه سمت کلاینت قطع شده یا برنامه خطایی داده یا از طریق تاسک منیجر آنرا بصورت فوری بستین
حال متوجه میشید ک سرور وضعیت را نتوانسته بررسی و در حال اتصال مانده است
در این صورت سرور در صورت ارسال پیام به سمت کلاینت خطا میدهد
چطور میتوانم در هر صورت وضعیت کلاینت را بررسی کنم؟
با تشکر
meys34
شنبه 11 اردیبهشت 1395, 11:27 صبح
قبل از ارسال چک کنید کانکت باشه:
If Winsock1.State = sckConnected Then Winsock1.SendData "salam"
و در ضمن پیشنهاد میشه پینگ هم انجام بدید که از اتصال اطمینان حاصل بشه...
و اما مشکلتون به پیاده سازی ارسال Ping صد در صد حل میشه.
روال زیر رو هر 10 ثانیه یکبار صدا بزنید. (هم از سمت سرور و هم کلاینت)
Sub Ping()
With winsock1
If .State = sckConnected Then .SendData "<PING>"
End With
End Sub
ali_00815
یک شنبه 12 اردیبهشت 1395, 03:52 صبح
با سلام و ممنون از پاسخ شما سرور گرامی
خب میخواستم بدونم در شرایط مولتی کلاینت چطور میتوانم از وضعیت صحیح اتصال هر کلاینت بصورت مجزا با خبر بشم
با تشکر
meys34
یک شنبه 12 اردیبهشت 1395, 10:45 صبح
سلام
خودم مولتی کلاینت کار نکردم ولی توی همون تاپیک بررسی شده بود:
http://barnamenevis.org/showthread.php?334032-%D9%82%D8%B7%D8%B9-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D9%87%D8%A7-%D8%A8%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1&p=1476546#post1476546
راستش از دو روش استفاده کردم ولی نمیدونم کدوم بهتره
روش اولم : اینکه زمان درخواست از طرف کلاینت بین آرایه ها چک میکردم هر کدوم از Winsock ها که State برابر با sckClosed و یا sckClosing می بود سوکت Closed و درخواست جدید با اون Accept میکردم - یعنی به تعداد سیستم هام سوکت داشتم
روش دومم : برای هر درخواست جدید یک Winsock رو Load میکردم و درخواست رو با همون Accept میکردم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.