PDA

View Full Version : سلام سوال درموردمانیتورینگ کردن برنامه تحت شبکه هست؟



hadis shaeidi
سه شنبه 29 شهریور 1390, 22:01 عصر
روبرنامه تحت شبکه کلاینت/سرور کارمیکنم میخواستم بدونم چطورمیتونم ازیک نرم افزارمانیتورینگ استفاده کرده وتصویرهرکلاینت درقسمت برنامه سرور مشاهده شود!!؟

Esmail Solhkhah
چهارشنبه 30 شهریور 1390, 16:52 عصر
روبرنامه تحت شبکه کلاینت/سرور کارمیکنم میخواستم بدونم چطورمیتونم ازیک نرم افزارمانیتورینگ استفاده کرده وتصویرهرکلاینت درقسمت برنامه سرور مشاهده شود!!؟

رو کلاینت یه Windows Service بنویسید که توسط یه سوکت به سرور متصل هست

و با دریافت دستور مربوطه از سرور ، از کلاینت یه PrintScreen گرفته و بصورت MemoryStream به سرور ارسال کنه

یا Capture ها رو کش کنه و بعد به سرور ارسال کنه

دقت کنید اولا در این حالت سرویستون باید قابلیت Interact with Desktop رو داشته باشه

و پورتی رو که مشخص کردید برای Firewall تعریف کنید.

در حالت عادی Firewall ها با ترافیکهای خروجی کاری ندارن ولی به ترافیکهای ورودی حساسند.

موفق باشید.

hadis shaeidi
چهارشنبه 30 شهریور 1390, 20:38 عصر
خیلی ازتون تشکرمیکنم بخاطرپاسختون من خیلی نیازدارم که هرچه سریعتراین کارروانجام بدم ببخشید میشه بیشترتوضیح بدید!چطورتوی سرورازنرم افزارمانیتورینگ استفاده بایدکرد! اگه سورس کدی دراین زمینه هست میشه معرفی کنید!!

Esmail Solhkhah
چهارشنبه 30 شهریور 1390, 21:25 عصر
نرم افزار سرورتون باید بتونه توسط توسط TCP/IP با نرم افزار Windows Service که اونم داره به یه پورت خاص گوش میده

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

در مقابل نرم افزار کلاینت هم (سرویس ویندوز) با دریافت این دستور از صفحه پرینت اسکرین گرفته و به سرور ارسال میکنه

برا پرینت گرفتن از صفحه نمایش


public static Bitmap CaptureScreen()
{
Bitmap screen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,Screen.Pr imaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(screen);
g.CopyFromScreen(0, 0, 0, 0, screen.Size);
return screen;
}

برا تبدیلات فایل به MemoryStream و برعکس



public static MemoryStream FileToMemoryStream(string filePath)
{
FileStream fs = File.OpenRead(filePath);
byte[] b = new byte[fs.Length];
fs.Read(b, 0, b.Length);
fs.Close();
MemoryStream ms = new MemoryStream();
ms.Write(b, 0, b.Length);
return ms;
}

public static void MemoryStreamToFile(MemoryStream ms, string FilePath)
{
FileStream fs = File.OpenWrite(FilePath);
fs.Write(ms.GetBuffer(), 0, (int)ms.Length);
fs.Close();
}

برا ارتباطات TCP : دوستان لطف کردن و آموزش کامل گذاشتن(یه PDF فارسی) فقط لینکش یادم نیس (بیزحمت سرچ کنید)

hadis shaeidi
پنج شنبه 31 شهریور 1390, 08:48 صبح
بازم تشکرازپاسخ خوبتون ببخشیدنرم افزارWindows Serviceکه گفتیدچه نرم افزاریه؟بایدچطوری استفادش کرد؟پس نرم افزارمانیتورینگی مثل classromspy monitor لازمه برای اینکار؟بیشتربرام توضیح بدید ممنون میشم!

Esmail Solhkhah
پنج شنبه 31 شهریور 1390, 11:05 صبح
Service های ویندوز به زبان ساده برنامه هایی هستند که معمولا تو فاز لود سیستم عامل لود میشن و عمدتا فاقد GUI هستند

اجرای این نرم افزارها توسط سرویس منیجر کنترل میشه

اگه DOS کار کرده باشید میشه گفت یه چیزی تو مایه های TSR

مثلا خود SQL SERVER یه سرویس ویندوز هست(فاقد GUI) که وقتی شما دارید با ManagementStudio مثلا یه دیتابیس میسازید

محیط Management Studio با سرویس SQL SERVER ارتباط برقرار میکنه و نهایتا این سرویس SQL SERVER هست که داره دیتابیس رو برا شما میسازه

در حالی که بنظر میاد این کاره Management Studio هست

برا برنامه نویسی سرویس های ویندوز تو تمپلیتهای Visual Studio شما گزینه Windows Service رو دارید

ولی توصیه میکنم قبل از سرویس نویسی حتما دربارش تو MSDN یا MSDN Online یه تحقیقی بکنید.

چون بحث Start و نصب سرویس و چند تا بحث مهم دیگه هم هست که باید باهاشون آشنا بشید.

موفق باشید.

hadis shaeidi
جمعه 01 مهر 1390, 08:51 صبح
بازم تشکرمیکنم ازپاسخ خوبتون