MUSCLE

Software screenshot:
MUSCLE
Software ətraflı:
Version: 6.82 Yenil?nib
Tarixi Upload: 22 Jun 18
Geliştirici: Jeremy Friesner
Lisenziya: Pulsuz
Məşhurluq: 26

Rating: 5.0/5 (Total Votes: 1)

MUSCLE , Multi User Server İstemcisi Bağlantı Çevresi'dir və sunucu ve istemci bileşenlerinden oluşan açıq kaynak, pulsuz, sağlam, ölçeklenebilir ve çapraz platform mesajlaşma sistemi.


Bir baxışda xüsusiyyətləri

MUSCLE ilə istifadəçilər, öz oturma mantığını və ya mesaj axın protokolunu müəyyən edərək, daxil olan "müştərək server" funksiyasını asanlıqla dəyişə biləcəklər. Proqram, C ++, C, C #, Java, Delphi və ya Python proqramlaşdırma dillərindən birində müştəri kodunuzu yazmağa kömək edir.

Proqram, BMessage kimi kasları istifadə edir: Mesajlar, düzləşdirilmiş əzələlərin göndərilməsini dəstəkləyir: TCP (Transmissiya İdarəetmə Protokolu) axınları vasitəsilə kompüterlər arası mesajlar, a & lcquo; muscled server & rdquo; server ilə əlaqə qurmaq üçün istifadə oluna bilən müştəri proqramları yazmağa imkan verən bir server maşın.

Ayrıca, bütün yuxarıda qeyd olunan proqramlaşdırma dillərini dəstəkləyən tək və çox işıqlı mesajlaşma API-lərini ehtiva edir. "Əzilmiş server & rdquo;

bir mesaj axın protokolu və ya sessiya mantığını müəyyən edərək asanlıqla özelleştirilebilir

MUSCLE ilə başlayın
Müvəffəqiyyətli bir girişdən sonra, müştəri proqramları mərkəzi serverə başqa kimin daxil olacağını və kasları saxlamaq üçün təyin edə bilər :: RAM-də olan mesajlar (sistem yaddaşında) və kasları göndərin: serverə. Xahiş edirik, müştəri proqramlarının serverdə xüsusi məlumatlara abunə oluna biləcəyini və məlumat dəyişdikdə ani bildirişləri əldə edə bilərsiniz.


Bir çox mesaj marşrutlarını dəstəkləyir

Proqram, ağıllı, hiyerarşik bir model eşleme marşrutlaşdırma mexanizmi vasitəsilə vahid tərzi, yayım tərzi və multicast tərzi olanları da daxil olmaqla, geniş bir mesaj marşrutlarını dəstəkləmək üçün nəzərdə tutulmuşdur.


Dəstəklənən OS və mövcudluq

MUSAL hər POSIX uyğun əməliyyat sistemi üzərində işləyir. GNU / Linux sisteminin tətbiqini optimallaşdırmağa imkan verən vahid, universal mənbələr arxivi kimi paylanır.

Bu sürümde 32-bit və 64-bit hardware platformaları da dəstəklənir.

  • testlər / Makefile-mt, testreflectsession dəstəkləyən bir OS üzərində icra edildikdən başqa testreflectsession tərtib etməyə çalışır.
  • Örnek olaraq "KÜÇÜK" olaraq kiçik bir düzenleme ve yeniden düzenleme yaptınız mı?
  • MkDocs-da [URL'ler] (...) ilə bir sıra 'tags' dəyişdirildi
  • CountedObject-in özəl mirasını bütün siniflərdən silindi - indi onlar bir CountedObject xüsusi üzv dəyişənini ehtiva edirlər. Bu, yalnız özəl mirasın DOxygen miras qrafiklərini qoruya bildiyi üçün həyata keçirildi.
  • CountedObject.h üçün DECLARE_COUNTED_OBJECT makro əlavə edildi, belə ki Object-counting istənilmədiyi hallarda CountedObjects hər hansı potensial yaddaş-overhead aradan qaldırıla bilər.
  • -DMUSCLE_AVOID_OBJECT_COUNTING üçün dəstək alındı ​​və yerinə bir -DMUSCLE_ENABLE_OBJECT_COUNTING makro əlavə edildi. (Yani, CountedObject sınıfı şimdi devre dışı bırakılmış ve kullanmak üçün açıq bir şekilde etkinleştirilmelidir)
  • Əlavə & quot; MUSKLE by Example & quot; MiscUtilityFunctions üçün sənədlər. {cpp, h}
  • MÜSKLE-misal MkDocs mənbəyində bir neçə 'tags' dəyişdirildi [urls], onlar sözügedən üsullar tez nəzərdən keçirilə bilər.
  • server / Makefile indi main () .o faylından sonra libmuscle.a ünvanını verir.
  • Test qovluğunda (Mika təkliflərinə görə) bəzi gcc xəbərdarlıqlarını düzəltdi
  • UnparseFile (), boşluqları düzgün bir şəkildə açar sözlər deyil. Sabit.
  • Misal olaraq, "MUSKLE by Example" adlı bağımlılıkları düzeltildi. nümunələr 'Makefiles.

  • Yeni versiyası:

    • Bir ShrinkToFit () rahatlığı metodu, Queue, Hashtable, və String dərsləri. Bu metod obyekti küçülür, beləliklə, ayrılmış yaddaş miqdarı, faktiki olaraq saxladığı məlumatların ölçüsüylə eşleşir.
    • Hashtable :: EnsureSize () və Queue :: EnsureSize () indi isteğe bağlı (allowShrink) argümanı götürür ki, (doğru olaraq təyin olunarsa), obyektin məcburi ardıcıl olaraq lazımi səviyyədən daha kiçik olduğu halda yenidən ayrılmasına imkan verir.
    • String sinifinin bufer genişləndirilməsi davranışını bir az daha effektiv etmək üçün tweaked.
    • "XƏRİTƏ TƏQDİMATI" yazarkən baş verə biləcək potensial sonsuz bir recursiona qarşı bir qoruyucu əlavə edildi; bir yaddaş ayırma başarısızlığından sonra bir səhv, bir LogCallback yaddaş ayırmaq istədi.

    6.01 versiyasında yeni :

    • String sinifinə bir PrependWord () rahatlığı metodu əlavə edildi.
    • String sinifinə Dəyişikliklər () rahatlığı metodları əlavə edildi.
    • DetectNetworkConfigChangesSession sinifinə bir SetExplicitDelayMicros () metodu əlavə edilib.
    • NetworkInterfaceInfo sinifinə bir IsCopperDetected () metodu əlavə edilib, belə ki, kodu bir Ethernet jakının kabelə takılı olub olmadığını deyə bilər.
    • Bir "quietsend" əlavə edildi; hexterm üçün argüman.
    • DetectNetworkConfigChangesSession sinifində olan NetworkInterfacesChanged () virtual metodu, xüsusən hansı şəbəkə interfeyslərinin dəyişdiyini söyləyən bir dəlil almaq üçün dəyişdirildi. Bu funksionallıq hazırda yalnız Linux, MacOS / X və Windows altında həyata keçirilir. Digər OS üçün arqument həmişə boş bir siyahı olacaqdır.
    • Recvmsg () bir səhv qaytardıqda (məsələn, qəbul edilən bir siqnal görə) bir segmentation səhvinə səbəb ola biləcək DetectNetworkConfigChangesSession Linux tətbiqində bir səhv bağladı.

    Sürüm 6.00'da yeni :

    • SSLSocketData® sinifini qeyri-blocker olmayan I / O (yeni SSLSocketAdapterGateway sinfi ilə birlikdə) ilə daha yaxşı işləmək üçün yenidən yazın.
    • Argument kimi bir ByteBuffer aparan SSLSocketDataIO :: SetPrivateKey () və SSLSocketDataIO :: SetCertificate () tətbiqləri əlavə edilib.
    • Gateway ilə SSLSocketData® sinfi istifadə edərkən OpenSSL-in daxili dövlət maşını idarə etmək üçün istifadə edilən SSLSocketAdapterGateway sinfi əlavə edildi.
    • Bütün gələn TCP əlaqələrində SSL identifikasiyası asanlaşdırmaq üçün, ReflectServer sinifinə SetSSLPrivateKey () və GetSSLPrivateKey () üsullarını əlavə etdi. Bu üsullar ifu MUSCLE_ENABLE_SSL müəyyən edilir.
    • Giden TCP bağlantılarında SSL kimlik doğrulamasını daha asan bir şekilde etkinleştirmek üçün ReflexServer sınıfına SetSSLPublicKeyCertificate () ve GetSSLPublicKeyCertificate () yöntemlerini əlavə etdi. Bu üsullar ifu MUSCLE_ENABLE_SSL müəyyən edilir.
    • İşaretlenmiş I / O istifadə edərkən SSL funksiyasını asanlaşdırmaq üçün, SetSSSPlusKey () və SetSSLPublicKeyCertificate () metodlarını MessageTransceiverThread sinifinə əlavə etdi.
    • OpenSSL public / private keypairs yaratmaqla bağlı bəzi məlumatları olan bir ssl_data qovluğunu və OpenSSL testində istifadə üçün nümunə bir keypair əlavə etdi.
    • MUSCLE_ENABLE_SSL müəyyən edildikdə, muscled indi isteğe 'privatekey = filename' argümanı qəbul edir. Belirtildiğinde, SSL rejimi aktiv və muskul ediləcəkdir, yalnız bu xüsusi açar / sertifikata uyğun olan ictimai düymələri təqdim edən gələn TCP əlaqələrini qəbul edəcəkdir.
    • MUSCLE_ENABLE_SSL müəyyən edildikdə, portablereflectclient və qt_example artıq optional 'publickey = filename' arqumentini qəbul edir. Belirtildiğinde, SSL rejimi aktiv olacaq və bu müştərilər OpenSSL istifadə edərək muskullə əlaqə quracaq və bu faylları öz etmə məlumatları kimi təqdim edəcəklər.
    • Bir "Animasiya" əlavə edildi; qt_example demosuna onay kutusunu. Pəncərənin yoxlanılması onun göstəricisini avtomatik olaraq hərəkət etməsinə səbəb olur.
    • Bir çox müştərinin birbaşa trafik yaradan bir ssenari sınamaq istəsəniz, bu əyləncəli və faydalıdır.
    • qt_example demounu daha yaxşı etdi.
    • Hashtable.h və Queue.h-də C ++ 11-köməkçi makroları digər paketlərin makrolarla toqquşma ehtimalı azdırmaq üçün yenidən adlandırdılar. * SSLSocketDataIO sinifində bəzi kiçik səhvləri düzeltin. o Adını dəyişdi SSLSocketDataIO :: SetKey () SetPrivateKey (). o Renamed SSLSocketDataIO :: SetCertificate () ilə SetPublicKeyCertificate (). o AbstractMessageIOGateway :: SetDataIO () artıq virtual üsuldur.

    Sürüm 5.92'de yeni :

    • Queue və Hashtable dərslərində C ++ 11 hərəkət semantikası üçün təkmilləşdirilmiş dəstək (yalnız -DMUSCLE_USE_CPLUSPLUS11 müəyyən edildikdə)
    • Bir String obyektinin neçə dəfə kopyalanacağını, köçürülməsini və s. (yalnız -DMUSCLE_COUNT_STRING_COPY_OPERATIONS müəyyən edildikdə) neçə dəfə izləyə biləcəyiniz üçün String sinifinə bəzi cihazları əlavə etdi
    • Yuxarıda toplanan String-əməliyyat məlumatlarını çaplayan PrintAndClearStringCopyCounts () funksiyası əlavə edilib.
    • Müvəqqəti bir obyektə kopyalamaq yerinə mümkün SwapContents () çağıraraq dəyişdirəcək muscleSwap () üçün bəzi SFINAE sehr əlavə edildi.
    • Queue sinifinə AddTailMulti () bir initializer-siyahısı konstruktor və yüklənmə əlavə edildi (yalnız -DMUSCLE_USE_CPLUSPLUS11 əlbəttə mövcuddur)
    • Yeni C ++ 11 şablonu ayrıştırma dəstəyi ilə münaqişələrin qarşısını almaq üçün Queue :: AddTail () və AddTailMulti ()
    • Yeni C ++ 11 şablonu ayrıştırma dəstəyi ilə münaqişələrin qarşısını almaq üçün Queue :: AddHead () AddHeadMulti () üçün növbə və sıra artıq yükləndiyini xatırladı.
    • MCRASH_IMPL makrosunu dəyişdirmək üçün çağırışla (yalan) dəyişdirildi.
    • Bir az daha Android-uyğunluğu tweakage.
    • Testlər qovluğunun bir çox proqramı C ++ 11 altında tərtib olunmadı. Sabit.
    • Clang statik analiz aracı tərəfindən aşkar edilmiş bir neçə potensial hataları düzeltildi.

    Sürüm 5.91'de yeni :

    • Hashtable sinifinə əlavə EnsureCanPut () rahatlığı metodu.
    • Queue sinifinə EnsureCanAdd () rahatlığı metodu əlavə edilib.
    • DoMutexAtomicIncrement () funksiyasını daha səmərəli zəng etmək üçün inline funksiyası olaraq dəyişdirdi.
    • GUI Qt proqramlarının qeyri-mümkün olması üçün QApplication :: postEvent () yerinə QCoreApplication :: postEvent () çağırmaq üçün QMessageTransceiverThread və QAcceptSocketsThread dəyişdirildi.
    • MUSCLE'in təkmilləşdirilmiş UDP dəstəyini əks etdirmək üçün Başlanğıc Kılavuzu sənədini güncəlləşdirdi.
    • Jean-François Mullet tərəfindən verilən bəzi Android uyğunluq dəyişiklikləri ilə birləşdi.
    • MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS kompilyasiya bayrağının istifadəsi MUSCLE-in əməliyyat əməliyyatları problemi səbəbindən başlanğıcda qəzaya səbəb olur. Bu indi müəyyən edilmişdir.
    • MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS tərtib bayrağı daha əvvəl yalnız AtomicCounter-ın başqa bir tətbiqi mövcud olmadıqda istifadə edildi. İndi bayrağın üstünlüyü daha yüksəkdir, buna görə bayraq yaradılması, başqa (daha səmərəli) mexanizm mövcud olsa da, Mutexes istifadə ediləcəyini bildirir.

    Sürüm 5.90'da nə yeni :

    • UDP üslublu paketli kommunikasiyanı daha ağıllı şəkildə idarə etmək üçün Gateway kodunun DataIO sinifinə bir GetPacketMaximumSize () metodu əlavə edilib.
    • MessageIOGateway indi UDPSocketDataIO ilə birlikdə faydalı işləyir.
    • GetArchiveMessageFromPool (), və s. üçün bərpa tərəfli həmkarı kimi xidmət etmək üçün MessageOc üçün CreateObjectFromArchiveMessage () templated funksiyalar əlavə edilib.
    • AtomicCounter :: AtomicIncrement () artıq bir boolean qaytarır (əsl iff yeni counter dəyəri birinə bərabərdir).
    • HTT_FLAG_NOREGISTER bayrağı göstərilməmiş olsa belə, yalnız oxunan Hashtable yinelemelerinin işə salınması üçün HashtableIterator sinfi dəyişdirildi.
    • Bir muscle_thread_id sinifini, tətbiq neytral bir şəkildə düzgün bir işarə təqdim etmək üçün SetupSystem.h'ye əlavə etdi.
    • Bir "kilidləmə" əlavə edildi; test qovluğuna proqram.
    • Bu proqram, qeybətlə deadlockfinder testini həyata keçirmək /

    • Avtomatik iplik təhlükəsizliyindən daha çox qaçmaq istəyənlər üçün lazım olan yerlərdə HTIT_FLAG_NOREGISTER dəlilləri təmin etmək üçün bir -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS əmr satırı bayrağı üçün əlavə dəstək.
    • GetHostByName () funksiyasına isteğe bağlı LRU axtarış önbelleğini əlavə etdi, belə ki, eyni hostnames yenidən və daha çox həll edilərkən daha tez qayıda bilər.
    • GetHostByName () -da LRU axtarış önbelleğini imkan verən və düzəldən bir SetHostNameCacheSettings () funksiyası əlavə edilib.
    • "dnscache" üçün dəstək əlavə edildi; və "dnscachesize"
    • Message.cpp-də CalculateChecksum () metodları, məlumatların ötürülməsi fərqlərinin aşkarlanmasında daha güclü olmaq üçün dəyişdirilmişdir.
    • Qt-nin QAtomicInt sinfi AtomicIncrement () metodunun yeni qaytarma dəyərinin tələb etdiyi funksiyanı dəstəkləmədiyi üçün, AtomicCounter.h dan MUSCLE_USE_QT_FOR_ATOMIC_OPERATIONS dəstəyi çıxarıldı.
    • Silinmiş MesajIOGateway :: FlattenMessage () və MessageIOGateway :: UnflattenMessage () silindi. Yerlərində əlavə edildi: MessageIOGateway :: FlattenHeaderAndMessage () və MessageIOGateway :: UnflattenHeaderAndMessage (). Bu yeni metodlar eyni zamanda başlıq baytları və Mesaj orqanı ilə də məşğul olurlar.
    • Windows altında udpproxy tərtib etmək üçün test qovluğuna bir udpproxy.vcproj faylı əlavə edilib.
    • Mesaj: Düzgün () artıq iki dəfə deyil, bir dəfə mesajdakı sahələr üzərində təkrarlanır.
    • GetCurrentThreadID () indi hashtableIterator tərəfindən tez-tez çağırılacağı üçün inline funksiyasıdır.
    • Muscle_thread_id artıq Hashtable əsas növü kimi istifadə edilə bilməz, çünki Hashtables yerine Queues istifadə etmək üçün deadlockfinder kodunu dəyişdirdi.
    • Sabit testudp.cpp, bir MessageIOGateway'i UDP ünsiyyəti üçün düzgün istifadə etməlidir.
    • FilePathInfo.cpp'taki ifefef'leri bir az daha çox tweaked ki, təmin etməyən MacOS / X SDK'ları istifadə edərkən statInfo.st_birthtimespec'e erişilmez.
    • MessageDataIOGateway artıq zlib-deflated məlumat tamponundan təkrar şişirdilə bilməyən bir mesajı Unflatten etməyə çalışır.
    • SendDataUDP () 'yi qeyri-blocker rejimi istifadə edərək bir multicast ünvanına göndərərkən səhv bir geri dönməyə səbəb ola bilən SendDataUDP () bir səhv bağladı və çıxış tamponları doldu.

    Sürüm 5.85-də yeni nə :

    • Əlavə LogTime (MUSCLE_LOG_DEBUG), MessageIOGateway :: DoInputImplementation () və Message :: Unflatten () içərisindəki bütün səhv yollarına zəng edir, belə ki, TCP əlaqələrinin data korrupsiya.
    • Bir PreviousOperationHadTransientFailure () funksiyası əlavə edilib, bu, iff errno-ni EINTR və ya ENOBUFS təşkil edir.
    • Spamspersecond = -1 müəyyənləşdirmək, hextermin spam məlumatlarını mümkün qədər sürətli göndərilməsinə səbəb olacaq.
    • SocketMultiplexer.h nin MUSCLE_USE_POLL tətbiqi WSAPoll () üçün POLLERR təmin edirdi, lakin WSAPoll () bu POLLERR-ni dəstəkləmir, belə ki WSAPoll () bu meydana gəldiyində bir səhv qaytaracaq.
    • Windows altında tərtib edərkən POLLERR-ni filtreleyerek problem ətrafında çalışdı
      ENOBUFS ölümcül bir vəziyyət olmasa da, ENOBUFS-nun geri qaytarılması () geri qaytarılmasına səbəb ola biləcək bir səhvdir.
    • MUSCLE_USE_POLL müəyyən edildikdə SocketMultiplexer.cpp tərtib edilmədi. Sabit.
    • ZLibCodec :: Deflate () metodu, çox böyük bir tamponda bütün məlumatları (məsələn, 42MB-dan yuxarı) sıxışdırmırdı. Sabit.

    Sürüm 5.84-də yeni nə :

    • StringMatcher sınıfının sayısal aralıklı sözdizimi uzatıldı, belə ki bir sıra aralıkları seçə bilərsiniz. Məsələn, "& quot; "19", "20", "21", "25", "30", "31", [...] və "50" dizələrinə uyğun olacaq.
    • TimeTime64ForRunTime64 () və GetRunTime64ForCurrenTime64 () dönüşüm funksiyalarını TimeUtilityFunctions.h əlavə etdi.
    • DataNode sınıfına bir GetDescendant () yardım metodu əlavə edilib.
    • Hashtable, Queue, String, Message və ByteBuffer dərslərinə C ++ 11 hərəkət strukturları və hərəkət-tapşırıq operatorları əlavə edildi. Eski derleyicilerle geriye dönük uyumluluk üçün, bu kod yalnız derleme hattında -DMUSCLE_USE_CPLUSPLUS11 belirtilmişse derlenir.
    • SharedMemory sinfi indi -DMUSCLE_FAKE_SHARED_MEMORY göstərildiyi halda, özünü paylaşılan yaddaş sinfi halına gətirəcəkdir.
    • Test qovluğuna bir testfilepathinfo testi əlavə edilib.
    • 2000-2013 Meyer Səsini oxumaq üçün bütün müəllif hüququ bildiriş başlıqlarını yenilədi.
    • C ++ 11 kompilyatorlarını xoşbəxt etmək üçün makro tokens (məsələn, UINT32_FORMAT_SPEC) və simli sabitlər (məsələn, "Hello") arasında əlavə yerlər.
    • ByteBuffer.cpp, böyük endian hostlar üzərində tərtib edilməsinin qarşısını alacaq bir sözdizim səhvinə sahib idi. Sabit.
    • Yalnızca MacOS / X: 10.8.x altında qüvvədə olan xəbərdarlıqlardan qaçmaq üçün, Mach eşdeğeri ilə Köhnə Karbon funksiyası çağırır.

    Yeni versiyası 5.83:

    • InflateByteBuffer () və DeflateByteBuffer bir arqument kimi bir ByteBufferRef edin.
    • AbstractMessageIOGateway sinifindən bəzi köhnəlmiş / istifadə edilməmiş üsullar (EnsureBufferSize () və FreeLargeBuffer ()) silindi.
    • Delphi alt qovluğundaki şərhlərdə bəzi yazı tiplərini düzəldib.
    • Hashtable sinfi MSVC altında tərtib edildikdə artıq -DMUSCLE_AVOID_MINIMIZED_HASHTABLES ilə müəyyən edilmiş xəbərdarlıq yaradır.
    • IPAddressAndPort :: ToString () bir səhv Sabit IPv4 ünvan strings səbəb olduqda (preferIPv4Style) yanlış biçimlendirilmiş biçimlendirilmiş.

Oxşar proqram

PostgreSQL
PostgreSQL

16 Aug 18

MDB Tools
MDB Tools

3 Jun 15

Jaxer
Jaxer

3 Jun 15

Geliştirici digər proqram Jeremy Friesner

AudioMove
AudioMove

2 Jun 15

Şərh MUSCLE

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!