Fa تخصصی - در مورد نحوه برقرای ارتباط با cmd و نرم افزار تحت cmd به وسیله command line

hr1510

Active Member
سلام . اصلا به نظرتون راه داره ؟

. من یه نرم افزار ارتباط با سرور های ssh دارم ... کل ماجرای کانکت با کامند لاین کنترل میشه . تحت cmd اجرا و کانتک میشه و نحوه قطع ارتباط این نرم افزار با سرور ... بستن صفحه command prompt که برای اتصال اجرا شده .

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

سوال اینجاست :

1-که از کجا متوجه کانکت شدنش بشم ؟ (لطفا برای اطلات بیشتر به نکات یاد شده مراحعه شود)
2-چطوری لاگ نرم افزار یا گزارش وضعیتش رو بیارم داخل بیلدرم . (میخوام مستقیم با فایل exe در ارتباط باشم نه با لود کردن تکست)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
چند تا نکته بگم که اساتید بتونید خوب راهنماییم کنید .

اول = اینکه ... اگر کانکت نشه خود به خود بسته میشه .
دوم = اینکه ... اگر کانک بشه یه لاگ کوچولو مثل پینگ گرفتن نشون میده که خوب از طریق خود cmd میشه توی یه فایل تکست ذخیرش کرد . مثلا اینجوری :
کد:
ping google.com >c:\log.txt
سوم = اینگه من دارم این نرم افزار ارتباطی رو خارج از دید کاربر اجرا میکنم .
چهارم = اینکه وقتی میخوام ببندمش یا به اصطلاح ارتباطش رو با سرور قطع کنم از taskkill استفاده میکنم و عالی پاسخ میده و برای بستنش (قطع ارتباط) مورد خواصی ندارم .

سوال اثاثی من در مورد دونستن حالت برقرای ارتباطه یا عدم برقراری ارتباطه که
(اگر کانک نشه خود به خود بسته میشه و اگر بشه لاگ میندازه ولی توی زمانبندی برای چک کردن لاگ ایراد دارم)

ایده خودم این بود که چند ثانیه پس از اجرا بیاد فایل متنی خروجی رو چک کنه و اگر خالی نبود یعنی کانکت شده .
موشکل این سیستم برای سیستم های سرعت پایین و دارای time out درد سر سازه .
دنبال ایده پویا تر میگردم . ببشید زیاد شد .ممنون

(پروژه من مثل این میمونه که شما دستور ping رو با پارامتر -t اجرا کنی که تا دستی نبندیش خود به خو بسته نشه.)​
 
آخرین ویرایش:

loo30fer

کاربر متخصص مولتی مدیا بیلدر
سلام
مشکل اینه مبحث Ping و بررسی از اونی که نشون داده میشه یکم سخت تره چون همونطور که خودتون میگید مشکل TimeOut تو اینترنت سرعت پایین رخ میده مخصوصا تو اینترنت سیم کارتهای ایرانسل و همراه اول که اگه کاربر در همون حین در حال دانلود کردن باشه ممکنه از هر 20 پکت ارسال شده یکیش جواب داده بشه پس ما با تعداد زیادی TimeOut مواجه میشیم پس نمیشه گفت با این بررسی جواب صدرصد درستی به شما بده البته میتونید زمان Timeout رو به 15 ثانیه افزایش بدین اینطوری احتمال خطا خیلی پایین میاد.
در کل پیشنهاد میکنم وضعیت اجرا بودن Command Port مربوطه رو بررسی کنید که پلاگینهای مختلفی در این زمینه وجود داره یک جستجویی بکنید پیدا میکنید.
 

hr1510

Active Member
ممنون . جالب بود - مخصوصا این قسمت :
البته میتونید زمان Timeout رو به 15 ثانیه افزایش بدین اینطوری احتمال خطا خیلی پایین میاد.
بهش فکر نکرده بودم ... هوووم :wink:

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

ایده خودم این بود که چند ثانیه پس از اجرا بیاد فایل متنی خروجی رو چک کنه و اگر خالی نبود یعنی کانکت شده .
موشکل این سیستم برای سیستم های سرعت پایین و دارای time out درد سر سازه .
دنبال ایده پویا تر میگردم

... اگر ایده پویا تری برای تکمیل پروژه ام باشه در صورت تایم اوت پیام دیس کانکت رو نمایش میدم .

(ولی هدفم کنترل کامل وضعیت اجرا بودن اون نرم افزاره ...)

- این که کانکت شده یا نه ؟
- توی مرحله کانکت هست یانه ؟
- به محض بسته شدن نرم افزارم متوجه بشه و ...

با جستجو به پلاگین MiscY رسیدم ولی هوز تستش نکردم . در تکاپو هستم فعلا ...


درضمن به یه موردی هم رسیدم که تا الان ازش اطلاع نداشتم این که :
از CBK_ReturnVal استفاده کردم ... و وقتی تستش کردم :
نرم افزارم رو با wait اجرا میکردم و دستی می بستمش بهم چنین پاسخی می داد : 3221225786 --- وقتی کانکت هم میشد مجبور بودم دستی ببندمش تا برگرده به نرم افزار
نرم افزارم رو با wait اجرا میکردم و اینترنت قطع کردم تا نتونه کانکت بشه بهم چنین پاسخی می داد : 1
نرم افزارم رو بدون wait اجرا میکردم بهم چنین پاسخی می داد : 0

------- اینم باز هنوز روش زیاد کار نکردم
 
آخرین ویرایش:

hr1510

Active Member
یه موشکلی که کانکشن تحت cmd من داره این که اگر یوز و پسوردی که قراره به سرور وصل بشه رو اشتباه زده باشم توی نرم افزارم میاد اجرا میشه و میگه اشتباهه و باز میمونه . بعد از سه تا access denied بسته میشه ...

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

مبخوام از طرف mmb برم اطلاعات کانکشنم رو get کنم .. بیشتر باید راهی برای مانیتور کردنش پیدا کنم تا get کردن .. نمیتونم نغییری توی کانکشن بدم
 
آخرین ویرایش:

محمدمهدی

Well-Known Member
آخرین ویرایش:

hr1510

Active Member
ممنون بابت پاسخ دلگرم کننده ات عزیز . میرم تست کنم ولی بروبچ ببینید راه دیگری به نظرتون میرسه .منتظرم
 

جدیدترین ارسال ها

بالا