MUSCLE

نرم افزار تصویر:
MUSCLE
جزئیات نرم افزار:
نسخه: 6.82 به روز شده
ها تاریخ: 22 Jun 18
توسعه دهنده: Jeremy Friesner
پروانه: رایگان
محبوبیت: 26

Rating: 5.0/5 (Total Votes: 1)

MUSCLE به معنای محیط اتصال چند کاربره سرور مشتری است و آن یک منبع آزاد، یکپارچه، یکپارچه، مقیاس پذیر و سیستم متقابل پلت فرم پیام است که شامل اجزای سرور و مشتری است. این به شما کمک خواهد کرد که تمام انواع نرم افزارهای توزیع شده از بازی های چند نفره و مشتریان چت IRC را به برنامه های محاسبه SETI ارسال کنید.


امکانات در یک نگاه

با MUSCLE، کاربران با استفاده از تعیین منطق جلسه خود و یا پروتکل جریان پیام قادر به راحتی "سرور عضلانی" می شوند. این نرم افزار به شما کمک می کند که کد مشتری خود را در هر زبان برنامه نویسی C ++، C، C #، Java، Delphi یا Python بنویسید.

این برنامه با استفاده از BMessage مانند عضلات :: پیام، پشتیبانی از ارسال عضلات مسطح :: پیام های بین کامپیوتر از طریق TCP (پروتکل کنترل انتقال) جریان، deploys & ldquo؛ عضله سرور & rdquo؛ در یک دستگاه سرور، به شما اجازه می دهد تا برنامه های مشتری را که می توانید برای برقراری ارتباط با سرور استفاده کنید، بنویسید.

علاوه بر این، شامل API های پیام رسانی چند منظوره و چندگانه است که از تمامی زبان های برنامه نویسی فوق الذکر پشتیبانی می کند. & ldquo؛ سرور عضلات & rdquo؛ می توان به راحتی با تعریف یک پروتکل پیام جریان یا یک منطق جلسه به راحتی سفارشی کرد.

شروع با MUSCLE

پس از ورود موفق، برنامه های مشتری می توانند تعیین کنند که چه کسی در سرور مرکزی وارد شده است، و همچنین برای ذخیره عضلات :: پیام ها در RAM (حافظه سیستم) و ارسال عضلات :: پیام ها به سایر مشتریانی که متصل هستند به سرور لطفا توجه داشته باشید که برنامه های مشتری می توانند به اطلاعات خاص در سرور مشترک شوند و هنگام تغییر داده ها، اطلاعیه های فوری را دریافت کنند.


پشتیبانی از طیف گسترده ای از پیام های پیام

این نرم افزار برای پشتیبانی از طیف گسترده ای از مسیرهای پیام، از جمله شیوه ی Unicast، سبک پخش و چند رسانه ای با استفاده از یک مکانیزم مسیر یاب منطقی و منطقی سلسله مراتبی طراحی شده است.


سیستم عامل های پشتیبانی شده و در دسترس بودن

MUSCLE در هر سیستم عامل سازگار با POSIX اجرا می شود. این به عنوان یک آرشیو منابع جهانی، توزیع شده است که به کاربران امکان می دهد که برنامه را برای سیستم GNU / Linux خود بهینه سازی کنند. هر دو سیستم عامل سخت افزاری 32 بیتی و 64 بیتی در این زمان پشتیبانی می شوند.

چه جدید در این نسخه است:

تست ها / Makefile-mt دیگر سعی نمی کند تست های تست را کامپایل کند، به جز زمانی که در یک سیستم عامل اجرا می شود که testreflectsession پشتیبانی می کند.
برخی از ویرایشها و تنظیم مجدد & quot؛ MUSCLE به عنوان مثال & quot؛ صفحات
تعدادی از برچسب ها را در MkDocs با [URLs] جایگزین کرد (...)
خصوصیات ارثی CountedObject از همه کلاس هایی که آن را داشته اید حذف شده است - در حال حاضر آنها شامل یک متغیر عضو CountedObject خصوصی می شوند. این کار فقط به این دلیل انجام شد که همه وراث خصوصی، فرایندهای ارثی DOxygen را به هم ریخت.
ماکرو DECLARE_COUNTED_OBJECT را به CountedObject.h اضافه کرد تا هر سربار احتمالی حافظه CountedObjects در مواردی که شمارش شیء مورد نظر مورد نیاز نیست حذف شود.
پشتیبانی از -DMUSCLE_AVOID_OBJECT_COUNTING حذف شده و یک مکعب -DMUSCLE_ENABLE_OBJECT_COUNTING را در جای خود قرار داده است. (یعنی کلاس CountedObject در حال حاضر توسط پیش فرض غیر فعال شده است و باید به طور صریح برای استفاده از آن فعال شود)
اضافه شده & quot؛ MUSCLE به عنوان مثال & quot؛ مستندات برای MiscUtilityFunctions. {cpp، h}
تعدادی از برچسب ها را در منبع MkDocs MUSCLE به عنوان مثال در URL تغییر دادند تا روش های ذکر شده خود را به سرعت مورد بررسی قرار دهند.

server / Makefile حالا libmuscle.a را بعد از فایل main () .o مشخص می کند.
برخی از هشدارهای gcc در پوشه آزمون (در هر پیشنهاد مایک) را ثابت کرد
UnparseFile () با کلمات کلیدی با فضاهای به درستی نقل نکرد. درست شد.
وابستگی ها را در & quot؛ MUSCLE به صورت مثال ثابت & quot؛ نمونه های Makefiles.

چه جدید در این نسخه است:

یک روش راحتی ShrinkToFit () برای کلاسهای صف، هشبد، و رشته اضافه شده است. این روش جسم را کاهش می دهد به طوری که مقدار حافظه ای که آن را به طور داخلی اختصاص داده است متناسب با اندازه داده هایی است که در واقع نگه داشته است.
Hashtable :: EnsureSize () و Queue :: EnsureSize () اکنون یک آرگومان اختیاری (allowShrink) را که (اگر درست به درستی تنظیم شده باشد) اجازه می دهد تا آرایه اختصاص داده شده به شیء را به صورت کوچکتر مجددا کوچکتر کند.
رفتار رفتار بافر-گسترش کلاس کلاس String را به صورت کمی کارآمد تر کرده است.
یک محافظ در برابر یک بازگشت مجدد بالقوه بی نهایت اضافه شده است که می تواند در هنگام ورود یک & quot؛ OUT OF MEMORY & quot؛ خطا پس از شکست تخصیص حافظه، اگر LogCallback سعی کرد حافظه را اختصاص دهد.

چه جدید در نسخه 6.01 است:

روش راحتی PrependWord () برای کلاس String اضافه شده است.
روشهای راحتی با استفاده از Referencing () برای کلاس String.
یک روش SetExplicitDelayMicros () را به کلاس DetectNetworkConfigChangesSession اضافه کرد.
یک روش IsCopperDetected () را به کلاس NetworkInterfaceInfo اضافه کرد، به طوری که کد می تواند بفهمد که آیا جک اترنت دارای یک کابل متصل به آن است.
& quot؛ quietsend & quot؛ اضافه شده است استدلال به hexterm
روش مجازی NetworkInterfacesChanged () در کلاس DetectNetworkConfigChangesSession تغییر کرده است تا یک استدلال را بیابد که از چه رابطهای شبکه به طور خاص تغییر کرده است. این قابلیت در حال حاضر تنها تحت لینوکس، MacOS / X و ویندوز اجرا می شود. برای سیستم عامل های دیگر، بحث همیشه یک لیست خالی است.
رفع اشکال در اجرای لینوکس DetectNetworkConfigChangesSession که اگر recvmsg () یک خطا را دریافت کرد (مثلا به علت دریافت سیگنال)، می تواند خطای تقسیم بندی را ایجاد کند.

در نسخه 6.00 جدید است:

کلاس SSLSocketDataIO را بازنویسی کرد تا با I / O غیر بلوک (در ارتباط با کلاس SSLSocketAdapterGateway جدید) بهتر کار کند.
پیاده سازی اضافه شده SSLSocketDataIO :: SetPrivateKey () و SSLSocketDataIO :: SetCertificate () که یک ByteBuffer را به عنوان یک استدلال می گیرند.
کلاس SSLSocketAdapterGateway اضافه شده است که برای مدیریت دستگاه حالت داخلی OpenSSL هنگام استفاده از کلاس SSLSocketDataIO با دروازه شما استفاده می شود.
روشهای SetSSLPrivateKey () و GetSSLPrivateKey () را به کلاس ReflectServer اضافه کردید تا امکان تأیید صحت SSL در تمامی اتصالات TCP درایو دریافتی وجود داشته باشد. این روش ها در دسترس هستند MUSCLE_ENABLE_SSL تعریف شده است.
روشهای SetSSLPublicKeyCertificate () و GetSSLPublicKeyCertificate () را به Class ReflectServer اضافه کرده و برای تأیید آسانتر SSL در اتصالات TCP خروجی. این روش ها در دسترس هستند MUSCLE_ENABLE_SSL تعریف شده است.
روشهای SetSSLPrivateKey () و SetSSLPublicKeyCertificate () را به کلاس MessageTransceiverThread اضافه کردید، برای فعال کردن آسانتر از قابلیت SSL هنگام استفاده از I / O رشته.
یک پوشه ssl_data با اطلاعاتی در مورد تولید کلید های عمومی / خصوصی OpenSSL اضافه کرده است و یک نمونه از keypair برای استفاده در آزمایش OpenSSL است.

هنگامی که MUSCLE_ENABLE_SSL تعریف شده است، عضله در حال حاضر یک آرگومان اختیاری 'privatekey = filename' را می پذیرد. هنگامی که مشخص شد، حالت SSL فعال خواهد شد و عضلات تنها اتصالات TCP ورودی را که کلیدهای عمومی موجود را مطابق با این کلید خصوصی / گواهی خصوصی قبول می کنند، قبول می کنند.
هنگامی که MUSCLE_ENABLE_SSL تعریف شده است، portablereflectclient و qt_example اکنون یک آرگومان اختیاری 'publickey = filename' را می پذیرند. هنگامی که مشخص شد، حالت SSL فعال خواهد شد و این مشتریان با استفاده از OpenSSL به عضلات متصل می شوند و این پرونده را به عنوان اعتبار خود ارائه می دهند.
& quot؛ Animate & quot؛ اضافه شده است کادر نمایش به نسخه آزمایشی qt_example. بررسی آن باعث می شود که پنجره به طور خودکار حرکت خود را نشان می دهد. این سرگرم کننده است و همچنین مفید است اگر شما می خواهید یک سناریو را آزمایش کنید که در آن مشتریان چندین بار ترافیکی را به طور همزمان تولید می کنند.
نسخه آزمایشی qt_exam را زیباترین ساخته است.
ماکروهای C ++ 11-helper را در Hashtable.h و Queue.h تغییر نام داد تا آنها بتوانند با ماکروهای دیگر بسته برخورد کنند. * برخی از خطاهای جزئی در کلاس SSLSocketDataIO ثابت شده است. o تغییر نام SSLSocketDataIO :: SetKey () به SetPrivateKey (). o تغییر نام SSLSocketDataIO :: SetCertificate () به SetPublicKeyCertificate (). o AbstractMessageIOGateway :: SetDataIO () در حال حاضر یک روش مجازی است.

چه جدید در نسخه 5.92 از جدید است:

پشتیبانی بهبود یافته در C ++ 11 حرکت معنایی در کلاس های صف و هشتب (فقط زمانی فعال می شود که -DMUSCLE_USE_CPLUSPLUS11 تعریف شده است)
بعضی از ابزارها را به کلاس String اضافه کردم تا بتوانم چندین بار شیء String را کپی، نقل مکان و غیره (تنها زمانی فعال شود که -DMUSCLE_COUNT_STRING_COPY_OPERATIONS تعریف شده باشد)
یک تابع PrintAndClearStringCopyCounts () که داده های عمل String را که در بالا جمع آوری شده چاپ می کند.
بعضی از جادوهای SFINAE را به muscleSwap () اضافه کرده و با فراخوانی SwapContents () در صورت امکان، به جای کپی کردن به یک شیء موقت، SwapContents را تغییر دهید.
اضافه شده یک سازنده لیست سازی اولیه و اضافه بار AddTailMulti () به کلاس صف (فقط در صورتی که -DMUSCLE_USE_CPLUSPLUS11 تعریف شده است، البته)
برای جلوگیری از تضاد با پشتیبانی جدید تجزیه و تحلیل الگوریتم جدید C ++ 11، صفر و بارگذاری مجدد Queue :: AddTail () را به AddTailMulti () تغییر نام دادیم.
برای جلوگیری از تضاد با پشتیبانی جدید تجزیه و تحلیل نسخه C ++ 11، Queen و Array اضافه بار Queue :: AddHead () به AddHeadMulti () تغییر نام داده شده است.
ماکرو MCRASH_IMPL را با یک تماس برای تکرار (اشتباه) جایگزین کرد.
اندکی ترجیح دادن قابلیت سازگاری اندروید.

بسیاری از برنامه های پوشه تست تحت C ++ 11 کامپایل نشدند. درست شد.
چندین اشکال بالقوه را که توسط ابزار تجزیه و تحلیل استاتیک حلقوی شناسایی شد، ثابت کرد.

چه جدید در نسخه 5.91 است:

روش راحتی EnsureCanPut () به کلاس Hashtable اضافه شده است.
روش EnsureCanAdd () برای کلاس Queue اضافه شده است.
DoMutexAtomicIncrement () به عنوان یک تابع خطی تغییر داده شده است تا Caller را کارآمدتر کند.
QMessageTransceiverThread و QAcceptSocketsThread را تغییر دهید تا QCoreApplication :: postEvent () را به جای QApplication :: postEvent ()، برای برنامه های غیر QI Qt غیر فعال کنید.
سند Leader's Guide را برای نشان دادن حمایت UDP بهبود یافته MUSCLE به روز کرد.
در برخی از تغییرات سازگاری با آندروید ادغام شده توسط Jean-FranAsois Mullet ارائه شده است.
استفاده از پرچم کامپایل MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS موجب می شود MUSCLE در هنگام راه اندازی به علت مشکل ترتیب عملیات سقوط کند. این اکنون ثابت شده است.
پرچم کامپایل MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS قبلا مورد استفاده قرار گرفت فقط در صورتی که هیچ پیاده سازی دیگری از AtomicCounter در دسترس نبود. در حال حاضر پرچم دارای بالاترین درجه است، بنابراین تنظیم پرچم به معنی استفاده از Mutexes است، حتی اگر مکانیزم دیگری (موثرتر) در دسترس باشد.

چه جدید در نسخه 5.90 است:

یک روش GetPacketMaximumSize () را به کلاس DataIO اضافه کرد تا کد دروازه را برای هوشمندانهتر ارتباطات packetized سبک UDP را مدیریت کند.
MessageIOGateway اکنون با استفاده از UDPSocketDataIO مفید است.
توابع CreateObjectFromArchiveMessage () ساخته شده به Message.h اضافه شده است، برای خدمت به عنوان یک counterpart of resting به GetArchiveMessageFromPool () و غیره
AtomicCounter :: AtomicIncrement () حالا یک Boolean را برمی گرداند (درست است که مقادیر جدید counter برابر با یک است).
کلاس HashtableIterator را اصلاح کرد تا اینکه تکرارهای Hashtable فقط خواندنی اکنون ایمن نخواهند بود حتی اگر پرچم HTIT_FLAG_NOREGISTER مشخص نشده باشد.
یک کلاس muscle_thread_id را به SetupSystem.h اضافه کرد تا به درستی نمایه یک موضوع را در یک حالت پیوسته نمایان سازد.
& quot؛ خاموش & quot؛ اضافه شده است برنامه به پوشه تست این برنامه عمدا باعث ایجاد یک بن بست می شود، به عنوان راهی برای تمرین / نشان دادن آزمون deadlockfinder.
اضافه شدن پشتیبانی از یک پرچم دستور خطی -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS برای کسانی که از تهیه پیش نیازهای ایمنی اتوماتیک جلوگیری می کنند و وعده به ارائه HTIT_FLAG_NOREGISTER استدلال را با دست در صورت لزوم.

یک Cache مراجعه به LRU را به تابع GetHostByName () اضافه کرد، به طوری که می تواند سریع تر با همان نام های میزبان دوباره و دوباره حل شود.
یک تابع SetHostNameCacheSettings () اضافه شده است که Cache Lookup LRU را در GetHostByName () فعال می کند و تنظیم می کند.
پشتیبانی از & quot؛ dnscache & quot؛ اضافه شده است و & quot؛ dnscachesize & quot؛ استدلال های خط فرمان در HandleStandardDaemonArgs ()، اجازه می دهد تا مشخصه خط فرمان رفتار Cache مراجعه LRU را داشته باشد.
کلاس Hashtable را اصلاح کرد به طوری که مقادیر اعشاری _iterHead، _iterTail و _freeHead اکنون به جای اشارهگرهای uint32s، برای کاهش استفاده از حافظه است.
روش ThreadLocalStorage :: SetFreeHeldObjectsOnExit () حذف شده است و به جای این استدلال boolean را به سازنده اضافه می کند، زیرا pthreads اجازه نمی دهد که این تنظیم را پس از ایجاد pthread_key_create () تغییر دهید.
Moved GetCurrentThreadID () به کلاس muscle_thread_id به عنوان یک تابع عضویت استاتیک، و آن را تغییر داد تا یک شیء muscle_thread_id را به جای طولانی بدون امضا نمایش دهد.نام میزبان پیش فرض برای جلسات بدون آدرس آی پی شناخته شده از & quot؛ & quot؛ تغییر کرده است. به & quot؛ _unknown_ & quot؛، به عنوان براکت های زاویه در رشته های سابق، به معنای خاصی از انتشار 5.84 دارند، و می توانند با تطبیق مسیر گره در روش های ناخواسته مانع شوند.
روش CalculateChecksum () در Message.cpp اصلاح شده است تا بتواند در تشخیص تفاوت های حمل و نقل داده قوی تر باشد.
پشتیبانی از MUSCLE_USE_QT_FOR_ATOMIC_OPERATIONS از AtomicCounter.h حذف شده است، از آنجا که کلاس QAtomicInt Qt از عملکردی که نیاز به مقدار جدیدی از روش AtomicIncrement () را پشتیبانی می کند پشتیبانی نمی کند.
MessageIOGateway حذف شده :: FlattenMessage () و MessageIOGateway :: UnflattenMessage (). اضافه شده در جای خود: MessageIOGateway :: FlattenHeaderAndMessage () و MessageIOGateway :: UnflattenHeaderAndMessage (). این روش های جدید در همان زمان با بایت های هدر و بدن پیام همکاری می کند.
یک فایل udpproxy.vcproj را به پوشه تست افزوده شده، برای کمک به udpproxy کامپایل تحت ویندوز.
پیام: Flatten () در حال حاضر بر روی زمینه ها در یک پیام یک بار، به جای دو بار، تکرار می شود.
GetCurrentThreadID () در حال حاضر یک تابع درون خطی است، زیرا ممکن است اکنون HashtableIterator آن را فراخوانی کند.

کد deadlockfinder را برای استفاده از صفها به جای Hashtables تغییر داد، از آنجا که muscle_thread_id دیگر نمیتواند به عنوان نوع کلید Hashtable دیگر استفاده شود.
testudp.cpp ثابت به درستی استفاده از MessageIOGateway برای ارتباط UDP آن است.
بدین ترتیب، ifdefs را در FilePathInfo.cpp ترسیم کنید تا در هنگام استفاده از MacOS / X SDK هایی که آن را ارائه نمیدهند، accessed به statInfo.st_birthtimespec دسترسی پیدا نخواهند کرد.
MessageDataIOGateway دیگر سعی نمی کند یک پیام از یک بافر داده خراب شده زلیب را غیرفعال کند که قادر به دوباره آن نیست.
رفع اشکال در SendDataUDP () که می تواند SendDataUDP () خطا هنگام ارسال یک آدرس چندرسانه ای با استفاده از حالت غیر بلوک را اشتباه بازگرداند و بافر خروجی کامل شد.

چه جدید در نسخه 5.85 است:

LogTime (MUSCLE_LOG_DEBUG) اضافه شده به کلیه مسیرهای خطا در MessageIOGateway :: DoInputImplementation () و Message :: Unflatten () را فراخوانی می کند، بنابراین تعیین زمان اتصال TCP به دلیل فساد داده کاسته می شود.
تابع PreviousOperationHadTransientFailure ()، که درست true iff errno را اضافه می کند، EINTR یا ENOBUFS است.
تعیین spamspersecond = -1 در حال حاضر hexterm را برای ارسال هرزنامه به همان سرعتی که ممکن است ایجاد کند.
پیاده سازی MUSCLE_USE_POLL SocketMultiplexer.h عرضه POLLERR به WSAPoll () بود، اما WSAPoll () POLLERR را پشتیبانی نمی کند، بنابراین WSAPoll () خطایی در هنگام وقوع رخ می دهد. در هنگام کامپایل کردن تحت ویندوز، فیلترینگ POLLERR را با مشکل مواجه کرد.
رفع اشکال که در آن ارسال () ENOBUFS بازگشت می تواند اتصال سوکت را خاتمه دهد، حتی اگر ENOBUFS یک وضعیت فاجعه نیست.
SocketMultiplexer.cpp هنگام MUSCLE_USE_POLL تعریف نمی شود. درست شد.
روش ZLibCodec :: Deflate () قادر به فشرده سازی تمام داده ها در یک بافر بسیار بزرگ (به عنوان مثال بیش از 42MB) نیست. درست شد.

چه جدید در نسخه 5.84 است:

دستورالعمل اعشاری محدوده عددی کلاس StringMatcher گسترش یافته است تا بتوانید چندین دامنه را مشخص کنید. به عنوان مثال، & quot؛ & quot؛ رشته ها را رعایت کنید & quot؛ 19 & quot ؛، & quot؛ 20 & quot ؛، & quot؛ 21 & quot ؛، & quot؛ 25 & quot ؛، & quot؛ 30 & quot ؛، & quot؛ 31 & quot ؛، [...] و & quot؛ 50.
توابع تبدیل GetCurrentTime64ForRunTime64 () و GetRunTime64ForCurrenTime64 () به TimeUtilityFunctions.h اضافه شده است.
یک روش ابزار GetDescendant () برای کلاس DataNode اضافه شده است.
C ++ 11 C- + 11 build-move-assignment-operators را به کلاس Hashtable، Queue، String، Message، and ByteBuffer اضافه کرده است. برای سازگاری عقب با کامپایلرهای قدیمی، این کد فقط کامپایل خواهد شد اگر -DMUSCLE_USE_CPLUSPLUS11 در خط کامپایل مشخص شده باشد.
کلاس SharedMemory خود را به کلاس غیرمتعارف تبدیل خواهد کرد اگر -DMUSCLE_FAKE_SHARED_MEMORY مشخص شده باشد.
آزمون testfilepathinfo را به پوشه آزمون اضافه کرد.
بههنگام شده در تمام هدر های اطلاعیه کپی رایت برای سال 2000-2013 Meyer صدا.


ByteBuffer.cpp دارای یک خطای نحوی است که از کامپایل بر روی میزبان های big-endian جلوگیری می کند. درست شد.
فقط MacOS / X: با استفاده از معادلات ماخ مکالمات تابع کربن جایگزین، برای جلوگیری از هشدارهای تخریب در زیر 10.8.x

چه جدید در نسخه 5.83 به دست آمده است:

نسخه های راحت InflateByteBuffer () و DeflateByteBuffer () که یک ByteBufferRef را به عنوان یک آرگومان در نظر گرفته اند.
برخی از روش های منسوخ / استفاده نشده (EnsureBufferSize () و FreeLargeBuffer () از کلاس AbstractMessageIOGateway حذف شده اند.
برخی از خطاها در نظرات در زیر پوشه delphi ثابت شده است.
کلاس Hashtable دیگر هنگامی که تحت MSVC کامپایل شده با -DMUSCLE_AVOID_MINIMIZED_HASHTABLES تعریف شده است، هشداری ایجاد نمی کند.
رفع اشکال در IPAddressAndPort :: ToString () که خطوط آدرس IPv4 را به صورت مبهم فرمت می کند زمانی که (preferIPv4Style) به اشتباه تنظیم شد.

نرم افزار های مشابه

Percona Server
Percona Server

20 Jan 18

DB2
DB2

19 Feb 15

SmallSQL
SmallSQL

12 May 15

نرم افزار های دیگر از توسعه دهنده Jeremy Friesner

AudioMove
AudioMove

2 Jun 15

نظرات به MUSCLE

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!