سلام
آیا کسی تا بحال با Shared Memory کاری کرده و جواب گرفته؟
خواهشا کسی بلده کمک کنه. مثال کاملی هم اگر کسی داره قرار بده.
تشکر
سلام
آیا کسی تا بحال با Shared Memory کاری کرده و جواب گرفته؟
خواهشا کسی بلده کمک کنه. مثال کاملی هم اگر کسی داره قرار بده.
تشکر
ببخشید که بی پرده میگم ولی یه سری سوالات هستند که معمولا اشتباه هستند چون با توجه به پیچیدگیشون شخصی که سوال پرسیده بهشون نیاز نداره.دقیقا مثل اینکه من بپرسم روش ساخت سوخت فضاپیما چیه.مطمئنا هدفی بزرگتر از درست کردن ۴ تا فشفشه و ترقه ندارم و راه حل بهتری برای من وجود دارد.شما هم اول هدفتون رو مشخص کنید.و بگید میخواهید چه نوع داده ای رو منتقل کنید و تا الان چی نوشتید و چه مشکلاتی دارید.
سلام
می خواهم به جای اینکه اطلاعات را در یک فایل بین چند پروسس جابجا کنم در حافظه این کار را انجام دهم. اطلاعات هر چیزی می تونه باشه ولی بیشتر ساختار یک جدول هست.
این پروسس ها هر کدام می تواند در یک برنامه جدا باشه. و باید بتوانند از اطلاعات این قسمت حافظه به صورت مشترک استفاده کنند.
تشکر
فکر میکنم بهتر باشه توی این وضعیت از NamedPipe استفاده کنید.
البته اگر بیشتر توضیح میدادید که هر برنامه با چه زبونی نوشته شده و به کد کدومها دسترسی دارید شاید میشد راه حل بهتری ارائه داد.
سلام
قرار هست خودم بنویسم و زبان C# هست.
مثالی از NamedPipe دارید یا یه توضیحی که دقیقا چیه و چه فرقی با shared memory داره.
اگر قرار هست بنویسید پیشنهاد میکنم از shared memory استفاده نکنید.
توی برنامه های managed زمانی از shared memory استفاده میشه که برنامه نوشته شده و هیچ راهی برای تغییرش وجود نداره.
پیشنهاد من اینه که از چیزی مثل MEF برای ارتباط قسمتهای مختلف استفاده کنید.یا حتی خودتون کاری که قرار هست MEF انجام بده رو انجام بدید.
برای روش کار MEF و اینکه چی هست و چرا و چطوری استفاده میشه جست و جو کنید.
با سلام.
Sharing Files and Memory (Windows)
Creating Named Shared Memory (Windows)
Programming Memory-Mapped Files with the .NET Framework - CodeProject
pinvoke.net: createfilemapping (kernel32)
System.IO.Pipes Namespace ()
Inter-Process Communication in .NET Using Named Pipes, Part 1 - CodeProject
Inter-Process Communication in .NET Using Named Pipes, Part 2
.NET Remoting in Simple English
.NET Remoting with an easy example
Getting started with named pipes - B# .NET Blog
Inter Process Communication in C# | Ultimate Programming Tutorials
چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست**********اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ
چه تفاوتی بین این سه تا مورد هست؟
MEF
Pipe
Shared memory
داخل کدامیک میشه یک ساختار را ذخیره کرد؟
با MEF همه ی قسمتهای برنامه در یک پروسس هستند ولی به یکدیگر دسترسی ندارند و سطح دسترسی رو شما تعیین میکنید.
در Pipe میتونید تحت شبکه هم کار کنید ولی اگر درست طراحی نکنید خیلی بد میشه.
در Shared Memory هم برنامه ها یک قسمت حافظه مشترک دارند که هر کدوم که تغییرش بده, بقیه میبینند.
Pipe اگر تحت شبکه نباشه مثل Shared Memory یک نوع IPC حساب میشه.
امکان قرار دادن یک جدول و اطلاعاتش در Shared memory هست یا نه؟
سلام
این مثال را پیدا کردم. کار هم میده یک رشته وارد می کنه و دوباره از حافظه می خونه. دو تا تابع در سرور هست و دو تا تابع اصلی هم در کلاینت.
فقط مشکل اینکه فقط یک رشته دریافت میکنه لطفا ببینید میشه یک ساختار را بهش ارسال و سپس دریافت کرد.
و اینکه از کجا بفهمیم چه موقع داده جدید وارد شده تا کلاینت بتونه آنرا بخونه؟؟
http://code.msdn.microsoft.com/windo...c32972#content
تشکر
آخرین ویرایش به وسیله water_lily_2012 : پنج شنبه 11 مهر 1392 در 11:02 صبح
سلام
در اون برنامه که گذاشتم در پروژه سرور، یک خط یک string را به byte تبدیل می کنه. و البته قبل از تبدیل یک '0\' نیز به string اضافه می کنه. حالا چطور می تونم یک کلاس بسازم و اون را تبدیل به بایت کنم.
byte[] bMessage = Encoding.Unicode.GetBytes(Message + '\0');
تشکر
Serialization
برای شروع جست و جو کنید:
XMLFormatter
BinaryFormatter
ProtocolBuffers
اولی اصلا به درد نمیخوره و فقط برای نمایش به خود برنامه نویس خوبه.
دومی یک مقدار قابل تحمله ولی هر دو برنامه باید با یک سری Reference کامپایل شده باشن
و سومی که میشه گفت همه چیزش عالیه ولی شاید به راحتی اون دو تای دیگه نباشه.
برای علت و اون صفر هم جست و جو کنید comparison of bstr and cstring