MUSCLE

Szoftver screenshot:
MUSCLE
Szoftver adatai:
Változat: 6.82 Frissítve
Feltöltés dátuma: 22 Jun 18
Fejlesztő: Jeremy Friesner
Engedély: Ingyenes
Népszerűség: 26

Rating: 5.0/5 (Total Votes: 1)

A MUSCLE a Multi User Server kliens kapcsolódási környezetét jelenti, és egy nyílt forráskódú, ingyenes, erőteljes, méretezhető és platformon keresztüli üzenetküldő rendszer, amely a kiszolgáló és az ügyfél összetevőkből áll. Segíteni fog Önnek, hogy mindenféle elosztott szoftvert, a többjátékos játékokat és az IRC chat-ügyfeleket írjon a SETI számítási alkalmazásokhoz.


Jellemzők áttekintése

A MUSCLE segítségével a felhasználók egyszerűen testreszabhatják a mellékelt "izmolt szervert" a saját munkamenet logikájuk vagy üzenettovábbítási protokolluk meghatározásával. A szoftver segít megírni ügyfélkódját a C ++, C, C #, Java, Delphi vagy Python programnyelvek bármelyikében.

A program BMessage-szerű izomot használ: Az üzenetek támogatják az összehajtogatott izom elküldését: A számítógépek között a TCP (Transmission Control Protocol) protokollon keresztül küldött üzenetek, az "muszkulált szerver" és a "ldquo; egy kiszolgáló gépen, amely lehetővé teszi, hogy olyan kliens programokat írjon, amelyekkel kommunikálni tud a kiszolgálóval.

Ezenkívül tartalmaz egy- és többszálas üzenetkezelő API-kat, amelyek támogatják a fent említett programozási nyelveket. A & ldquo; izmos szerver & rdquo; egyszerűen testre szabható egy üzenet-streaming protokoll vagy egy munkamenet logika meghatározásával.

A MUSCLE használatának megkezdése

A sikeres bejelentkezés után az ügyfélprogramok meghatározhatják, hogy ki van bejelentkezve a központi kiszolgálóra, valamint tárolja az izomot :: Üzenetek a RAM-ban (rendszermemória), és küldje el az izomot :: Üzenetek más csatlakoztatott ügyfelekhez a szerverre. Kérjük, vegye figyelembe, hogy az ügyfélprogramok előfizethetnek a kiszolgálóra vonatkozó konkrét adatokra, és azonnali értesítéseket kaphatnak az adatok megváltoztatásakor.


Támogatja az üzenetsorozatok széles körét

A szoftvert úgy tervezték, hogy az intelligens, hierarchikus mintázat-illesztő irányító mechanizmus segítségével széles körű üzenettovábbításokat támogasson, beleértve az unicast stílusú, az adásstílusú és a multicast-stílusúakat is.


Támogatott operációs rendszerek és elérhetőség

A MUSCLE bármilyen POSIX-kompatibilis operációs rendszeren fut. Egyetlen univerzális forrás archívumként kerül forgalomba, amely lehetővé teszi a felhasználók számára, hogy optimalizálják a GNU / Linux rendszer alkalmazását. Jelenleg mind a 32 bites, mind a 64 bites hardveres platformok támogatottak.

Az újdonság ebben a kiadásban:

  • tesztek / Makefile-mt nem próbálkozik a testreflectsession fordítással, kivéve, ha a tesztreflexiáció támogatja az operációs rendszert.
  • A "MUSCLE by Example" és a "MUSCLE by Example" lapok.
  • Néhány "címke" helyett az MkDocs-ban [URL-ekkel] (...)
  • A CountedObject privát örökségét eltávolította minden olyan osztályról, amelyik rendelkezett - most egy CountedObject privát tag változót tartalmaznak. Ezt csak azért tették meg, mert az összes privát örökség felborította a DOxygen öröklési grafikonokat.
  • Hozzáadott egy DECLARE_COUNTED_OBJECT makrót CountedObject.h-hoz, hogy a CountedObjects esetleges memóriafelülete megszűnjön olyan esetekben, amikor az objektumszámlálás nem kívánatos.
  • eltávolította a -DMUSCLE_AVOID_OBJECT_COUNTING támogatást és hozzáadta a -DMUSCLE_ENABLE_OBJECT_COUNTING makrót a helyére. (Vagyis a CountedObject osztály mostantól le van tiltva, és használatához explicit módon engedélyezni kell)
  • Hozzáadott "MUSCLE by Example" a MiscUtilityFunctions dokumentációja. {cpp, h}
  • Néhány "címke" -et a MUSCLE-by-Example MkDocs forrásból [urls] -be változtatott, így az általuk említett módszerek gyorsan áttekinthetők.
  • A

  • kiszolgáló / Makefile most megadja a libmuscle.a fájlt a fő () .o fájl után.
  • Fix néhány gcc figyelmeztetést a teszt mappában (Mika javaslata szerint)
  • Az UnparseFile () nem helyes kulcsszavakat idézett. Fix.
  • Javította a függőségeket a & quot; MUSCLE by Example & quot; Példák "Makefiles.

    • Hozzáadott egy ShrinkToFit () kényelmes módszert a sorhoz, a Hashtable-hez, és a String osztályok. Ez a módszer összezsugorítja az objektumot úgy, hogy a belsőleg hozzárendelt memória mennyisége megegyezzen az általa ténylegesen tárolt adatok méretével.
    • Hashtable :: EnsureSize () és queue :: Az EnsureSize () egy opcionális (allowShrink) argumentumot tartalmaz, amely (ha igazra van állítva) lehetővé teszi az objektum belsőleg hozzárendelt tömbének kisebb összegű átcsoportosítását, ha a nagyobb, mint szükséges.
    • Csökkentette a String-osztály puffer-bővítési viselkedését, hogy egy kicsit hatékonyabb legyen.
    • Hozzáadott egy védelmet a potenciális végtelen rekurzió ellen, amely előfordulhat egy "OUT OF MEMORY" hiba a memóriaelosztás meghiúsulása után, ha a LogCallback megpróbálta felosztani a memóriát.

    Az újdonság a 6.01-es verzióban:

    • Hozzáadott egy PrependWord () kényelmi módszert a String osztályhoz.
    • Hozzáadva a () kényelmességi módszerek hozzáadásával a String osztályhoz.
    • Hozzáadott egy SetExplicitDelayMicros () metódust a DetectNetworkConfigChangesSession osztályhoz.
    • Hozzáadott egy IsCopperDetected () metódust a NetworkInterfaceInfo osztályhoz, így a kód meg tudja állapítani, hogy az Ethernet csatlakozóhoz kábel van-e csatlakoztatva.
    • Hozzáadott egy & quot; quietsend & quot; argumentum a hextermhez.
    • A DetectNetworkConfigChangesSession osztályban a NetworkInterfacesChanged () virtuális módszer megváltozott, hogy egy olyan érvet hozzon létre, amely felhívja a figyelmet arra, hogy melyik hálózati interfész vált különösen. Ez a funkció jelenleg csak Linux, MacOS / X és Windows alatt fut. Más operációs rendszerek esetében az argumentum mindig üres lista lesz.
    • Fix egy hibát a DetectNetworkConfigChangesSession Linux végrehajtásában, amely szegmentálási hibát okozhat, ha a recvmsg () hibát adott vissza (például egy fogadott jel miatt).

    Újdonság a 6.00 verzióban:

    • Az SSLSocketDataIO osztály újbóli javítása a nem blokkoló I / O-val (az új SSLSocketAdapterGateway osztálysal együtt) javítva működik.
    • Hozzáadott SSLSocketDataIO :: SetPrivateKey () és SSLSocketDataIO :: SetCertificate () implementációk, amelyek egy ByteBuffer argumentumot tartalmaznak.
    • Hozzáadott egy SSLSocketAdapterGateway osztály, amelyet az SSLSocketDataIO osztály használata az átjáró segítségével az OpenSSL belső állapotkezelő gépének kezelésére szolgál.
    • Hozzáadta a SetSSLPrivateKey () és a GetSSLPrivateKey () metódusokat a ReflectServer osztályhoz, megkönnyítve az SSL hitelesítést minden bejövő TCP kapcsolaton. Ezek a módszerek elérhetők iff MUSCLE_ENABLE_SSL definiálva.
    • Hozzáadta a SetSSLPublicKeyCertificate () és a GetSSLPublicKeyCertificate () metódusokat a ReflectServer osztályhoz, megkönnyítve az SSL-hitelesítést a kimenő TCP-kapcsolatokon. Ezek a módszerek elérhetők iff MUSCLE_ENABLE_SSL definiálva.
    • Hozzáadta a SetSSLPrivateKey () és a SetSSLPublicKeyCertificate () metódusokat a MessageTransceiverThread osztályhoz, az SSL funkciók egyszerűbb engedélyezéséhez threaded I / O használatakor.
    • Hozzáadott egy ssl_data mappát az OpenSSL nyilvános / privát kulcspárokról és az OpenSSL teszteléséhez használt példapéldány létrehozásáról.
    • A MUSCLE_ENABLE_SSL definiálásakor az izmok most elfogadják az opcionális "privatekey = fájlnév" argumentumot. Meghatározásakor az SSL mód engedélyezve lesz, és az izmok csak olyan bejövő TCP-kapcsolatokat fogadnak el, amelyek nyilvános kulcsokat tartalmaznak, amelyek megfelelnek a privát kulcsnak / tanúsítványnak.
    • A MUSCLE_ENABLE_SSL definiálásakor a portablereflectclient és a qt_example elfogadja az opcionális "publickey = fájlnév" argumentumot. Meghatározáskor az SSL mód engedélyezve lesz, és ezek az ügyfelek az OpenSSL használatával kapcsolódnak az izmokhoz és bemutatják ezt a fájlt hitelesítő adatokként.
    • Hozzáadott egy & quot; Animate & quot; jelölje be a qt_example demo jelölőnégyzetet. Ellenőrzésével az ablak automatikusan mozgatja a kijelzőt. Ez szórakoztató és hasznos, ha olyan forgatókönyvet szeretne tesztelni, ahol több ügyfél generál forgalmat egyszerre.
    • A qt_example demo szebbnek bizonyult.
    • Átnevezte a C ++ 11 helper makrókat a Hashtable.h és a Queue.h fájlban, hogy kisebb valószínűséggel ütközzenek más csomagok makrókkal. * Rögzített néhány kisebb hibát az SSLSocketDataIO osztályban. o Az SSLSocketDataIO :: SetKey () átnevezte a SetPrivateKey () parancsot. o Az SSLSocketDataIO :: SetCertificate () átnevezte a SetPublicKeyCertificate () függvényt. o AbstractMessageIOGateway :: A SetDataIO () egy virtuális módszer.

    Az újdonság az 5.92-es verzióban:

    • A C ++ 11 mozgássemantikának a Cue és Hashtable osztályokban nyújtott támogatása (csak akkor engedélyezett, ha a -DMUSCLE_USE_CPLUSPLUS11 definiálva van)
    • Hozzáadott néhány hangszerelést a String osztályhoz, így megnézhetem, hogy egy String objektumot másolnak, mozgathatók-e stb. (csak akkor engedélyezett, ha -DMUSCLE_COUNT_STRING_COPY_OPERATIONS van definiálva)
    • Hozzáadott egy PrintAndClearStringCopyCounts () függvényt, amely kinyomtatja a fenti String-művelet adatokat.
    • Hozzáadott egy SFINAE mágiát az muscleSwap () -hoz, hogy swappal hívja fel a SwapContents () -t, ha csak lehetséges, és nem átmásol egy ideiglenes objektumra.
    • Hozzáadta az AddTailMulti () inicializáló listás konstruktort és túlterhelést a várólistához (csak akkor elérhető, ha a -DMUSCLE_USE_CPLUSPLUS11 definíciója természetesen)
    • Átnevezte a Queue :: AddTail () sor és a tömb túlterheit a AddTailMulti () függvénybe, hogy elkerülje az új C ++ 11 sablonszerkesztési támogatással való ütközést.
    • Átnevezte a Queue :: AddHead () sor és a tömb túlterheit az AddHeadMulti () függvénybe, hogy elkerülje az új C ++ 11 sablonszerkesztési támogatással való ütközést.
    • Cserélte a MCRASH_IMPL makrót, amelyben állítólag érvényes (false).
    • Egy kicsit több Android-kompatibilitási csípés.
    • Számos program a teszt mappában nem fordult elő a C ++ 11 alatt. Fix.
    • Meghatározta azokat a potenciális hibákat, amelyeket a clang statikus elemző eszközzel észleltek.

    Az újdonság az 5.91 verzióban:

    • Hozzáadta az EnsureCanPut () kényelmi módszert a Hashtable osztályhoz.
    • Hozzáadta az EnsureCanAdd () kényelmi módszert a várólistához.
    • A DoMutexAtomicIncrement () módosította egy lineáris függvényt, hogy hatékonyabbá tegye.
    • Megváltozott QMessageTransceiverThread és QAcceptSocketsThread hívja a QCoreApplication :: postEvent () helyett a QApplication :: postEvent () parancsot, hogy a nem GUI Qt alkalmazások legyenek engedélyezve.
    • Frissítette a Kezdő útmutató dokumentumot, hogy tükrözze a MUSCLE javított UDP-támogatását.
    • Egyesített Jean-Frana§ois Mullet egyes kompatibilitási változásaival.
    • A MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS fordító zászló használatával a MUSCLE összeomlik az üzembe helyezéskor egy műveleti megbízás miatt. Ez már rögzült.
    • A MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS fordító zászlót korábban csak akkor használták, ha az AtomicCounter más megvalósítása nem áll rendelkezésre. Most a zászló nagyobb elsőbbséget élvez, ezért a zászló beállítása azt jelenti, hogy a Mutexes is használható, még akkor is, ha más (hatékonyabb) mechanizmus áll rendelkezésre.

    Az újdonság az 5.90-es verzióban:

    • Hozzáadott egy GetPacketMaximumSize () metódust a DataIO osztályhoz, hogy az átjárókód intelligensabban kezelje az UDP-stílusú csomagkapcsolt kommunikációt.
    • Az MessageIOGateway most hasznosan működik az UDPSocketDataIO-val együtt.
    • Hozzáadta a CreateObjectFromArchiveMessage () sablonfüggvényeket a Message.h fájlhoz, hogy a GetArchiveMessageFromPool () stb. helyreállító oldalaként szolgáljon.
    • AtomicCounter :: AtomicIncrement () most egy boolean (igaz iff az új számláló értéke egyenlő egy) értékkel tér vissza.
    • Módosította a HashtableIterator osztályt, így a csak olvasható Hashtable iterációk mostantól szálasak, még akkor is, ha a HTIT_FLAG_NOREGISTER zászló nincs megadva.
    • Hozzáadott egy muscle_thread_id osztályt a SetupSystem.h-nak, hogy megfelelően jelenítse meg a témaazonosítót végrehajtás-semleges módon.
    • Hozzáadott egy "holtpont" programot a teszt mappába. Ez a program szándékosan veszélyezteti a holtpontot, mint a holtpontkeresõ teszt végrehajtását / bemutatását.
    • Hozzáadta a -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS parancssori zászló támogatását azok számára, akik inkább elkerülnék az automatikus szálbiztonságot, és megígérhetik, hogy a HTIT_FLAG_NOREGISTER argumentumokat szükség szerint kézzel kézbesítik.
    • Hozzáadott egy opcionális LRU keresési gyorsítótárat a GetHostByName () függvényhez, így gyorsabban térhet vissza, ha ugyanazok a gazdanevek újra és újra megoldódnak.
    • Hozzáadott egy SetHostNameCacheSettings () függvényt, amely engedélyezi és beállítja az LRU keresési gyorsítótárát a GetHostByName () szolgáltatásban.
    • Hozzáadta a & quot; dnscache & quot; és "dnscachesize" a HandleStandardDaemonArgs () parancssori argumentumait, hogy engedélyezhesse az LRU keresési gyorsítótár viselkedését.
    • Módosította a Hashtable osztályt, hogy a _iterHead, _iterTail és _freeHead tag értékek most inkább uint32s legyenek, mint mutatók, csökkentve a memóriahasználatot.
    • Eltávolította a ThreadLocalStorage :: SetFreeHeldObjectsOnExit () metódust, és helyette hozzáadta a logikai argumentumot a konstruktorhoz, mivel a pthreads nem engedélyezi a beállítás módosítását a pthread_key_create () meghívás után.
    • A GetCurrentThreadID () -t statikus tag függvényként az muscle_thread_id osztályba helyezte át, és megváltoztatta azt, hogy visszaadja az muscle_thread_id objektumot, és nem az aláírás hosszú időt.
    • Az ismert IP-cím nélküli munkamenetek alapértelmezett állomásnevét a (z) & quot; & quot; hogy a korábbi karakterláncban lévő szögletes zárójelek az 5,84-es kiadásnál különleges jelentéssel bírnak, és nem kívánt módon érinthetik a csomópont-összerendelést.
    • A Message.cpp CalculateChecksum () metódusai módosultak, hogy robusztusabbak legyenek az adatátvitel különbségeinek észlelésekor.
    • A MUSCLE_USE_QT_FOR_ATOMIC_OPERATIONS támogatás eltávolítása az AtomicCounter.h-ból, mivel a Qt's QAtomicInt osztály nem támogatja az AtomicIncrement () metódus új visszatérési értékéhez szükséges funkciókat.
    • Eltávolított MessageIOGateway :: FlattenMessage () és MessageIOGateway :: UnflattenMessage (). Hozzáadva a helyükön: MessageIOGateway :: FlattenHeaderAndMessage () és MessageIOGateway :: UnflattenHeaderAndMessage (). Ezek az új módszerek egyaránt foglalkoznak a fejléc bájtjaival és az Üzenetek testével.
    • Hozzáadott egy udpproxy.vcproj fájlt a tesztek mappájába, hogy segítsen összeállítani a udpproxy rendszert a Windows alatt.
    • Üzenet: A Flatten () mostantól az üzenet mezők fölé kerül, kétszer anélkül.
    • A GetCurrentThreadID () most egy inline függvény, mivel mostantól a HashtableIterator gyakran hívja.
    • Módosította a holtpontkeresőkódot a Hashtables helyett a Várólisták használatára, hiszen az muscle_thread_id nem használható Hashtable kulcs típusként.
    • Fix testudp.cpp-t használva a MessageIOGateway használatához az UDP kommunikációhoz.
    • Csinálta az ifdefs fájlt egy kicsit a FilePathInfo.cpp fájlban, így a statInfo.st_birthtimespec nem fér hozzá MacOS / X SDK-k használatakor, amelyek nem adják meg.
    • A MessageDataIOGateway többé nem próbálja meg eltávolítani egy üzenetet egy zlib által deflált adatpufferről, amelyet nem tudott újra feltölteni.
    • Javított egy hibát a SendDataUDP () -en, amely a SendDataUDP () függvényében hibát okozhat, ha multicast címre küldi a nem blokkoló üzemmódot, és a kimeneti puffer tele van.

    Az újdonság az 5.85-ös verzióban:

    • Hozzáadta a LogTime (MUSCLE_LOG_DEBUG) hívásokat a MessageIOGateway :: DoInputImplementation () és az Message :: Unflatten () üzenetben lévő összes hibapontra, így könnyebben meghatározható, ha a TCP-kapcsolatok megszakadnak az adatok miatt korrupció.
    • Hozzáadott egy PreviousOperationHadTransientFailure () függvényt, amely az true iff errno értéket adja vissza EINTR vagy ENOBUFS.
    • A spamspersecond = -1 megadásával a hexterm a lehető leggyorsabban küldhet spam adatokat.
    • A SocketMultiplexer.h MUSCLE_USE_POLL implementációja a POLLERR-t a WSAPoll () -hoz szállította, de a WSAPoll () nem támogatja a POLLERR-et, így a WSAPoll () hibaüzenet jelenhet meg. A probléma körülkerült a POLLERR szűrése során a Windows alatt végzett fordítás során.
    • Javítva egy olyan hiba, ahol az ENOBUFS visszaküldésével járó send () okozhat az aljzat-kapcsolatot, annak ellenére, hogy az ENOBUFS nem halálos kimenetelű állapot.
    • A SocketMultiplexer.cpp nem fordul elő, ha a MUSCLE_USE_POLL definiálásra került. Fix.
    • A ZLibCodec :: Deflate () metódus nem tud tömöríteni minden adatot egy nagyon nagy pufferben (például több mint 42 MB). Fix.

    Az újdonság az 5.84-es verzióban:

    • A StringMatcher osztály numerikus tartományú szintaxisát kibővítettük, így most több tartományt adhat meg. Például a & quot; & quot; a "19", a "20", a "21", a "25", a "30", a "31", a [...] és az "50"
    • Hozzáadta a GetCurrentTime64ForRunTime64 () és a GetRunTime64ForCurrenTime64 () konverziós funkciókat a TimeUtilityFunctions.h fájlhoz.
    • Hozzáadott egy GetDescendant () segédprogram metódust a DataNode osztályhoz.
    • Hozzáadta a C ++ 11 mozgás-konstruktorokat és a mozgás-hozzárendelés-operátorokat a Hashtable, Queue, String, Message és ByteBuffer osztályokhoz. A régebbi fordítókkal való visszafelé kompatibilitás érdekében ez a kód csak akkor fordul elő, ha a fordító sorban a -DMUSCLE_USE_CPLUSPLUS11 szerepel.
    • A SharedMemory osztály most nerf egy nem megosztott memóriaosztályba, ha -DMUSCLE_FAKE_SHARED_MEMORY van megadva.
    • Hozzáadott egy tesztfilepathinfo tesztet a teszt mappához.
    • Frissített minden szerzői jogi figyelmeztetés fejlécét, hogy elolvashassa a Meyer Sound 2000-2013-as verzióját.
    • Hozzáadott szóközök a makrójelek (például UINT32_FORMAT_SPEC) és a sztring állandók között (például "Hello"), hogy a C ++ 11 fordítók boldogok legyenek.
    • A ByteBuffer.cpp-nek szintaktikai hibája volt, amely megakadályozná a big-endian gazdagépek fordítását. Fix.
    • Csak MacOS / X: Az elavult Carbon függvényhívásokat Mach egyenértékekkel helyettesítette, a 10.8.x alatti elmaradási figyelmeztetések elkerülése érdekében.

      • Hozzáadta az InflateByteBuffer () és a DeflateByteBuffer () kényelmes verzióit, amelyek

      vegyen egy ByteBufferRef argumentumot.

    • Néhány elavult / fel nem használt módszert (EnsureBufferSize () és FreeLargeBuffer ()) eltávolított az AbstractMessageIOGateway osztályból.
    • Javítva néhány hibát a delphi almappában szereplő megjegyzésekben.
    • A Hashtable osztály már nem generál figyelmeztetéseket MSVC alatt összeállított -DMUSCLE_AVOID_MINIMIZED_HASHTABLES definícióval.
    • Fix egy hiba az IPAddressAndPort :: ToString () -ben, amely az IPv4 cím stringeket félreértelmezett formában okozta, amikor (preferIPv4Style) hamis.

Hasonló program

phpPgAdmin
phpPgAdmin

14 Apr 15

Apache Cassandra
Apache Cassandra

19 Feb 15

Apache Xindice
Apache Xindice

2 Jun 15

Drizzle
Drizzle

20 Feb 15

Más szoftver fejlesztő Jeremy Friesner

AudioMove
AudioMove

2 Jun 15

Hozzászólások a MUSCLE

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!