MUSCLE

Screenshot Λογισμικό:
MUSCLE
Στοιχεία Λογισμικού:
Εκδοχή: 6.82 επικαιροποιημένο
Ανεβάστε ημερομηνία: 22 Jun 18
Προγραμματιστής: Jeremy Friesner
Άδεια: Δωρεάν
Δημοτικότητα: 26

Rating: 5.0/5 (Total Votes: 1)

Το MUSCLE σημαίνει περιβάλλον σύνδεσης πολλαπλών χρηστών διακομιστή σύνδεσης και είναι ένα ανοικτού κώδικα, δωρεάν, αξιόπιστο, κλιμακωτό και δια-πλατφόρμα σύστημα ανταλλαγής μηνυμάτων που αποτελείται από στοιχεία διακομιστή και πελάτη. Θα σας βοηθήσει να γράψετε όλα τα είδη διανεμημένου λογισμικού, από παιχνίδια για πολλούς παίκτες και πελάτες chat IRC, σε εφαρμογές υπολογισμού SETI.


Χαρακτηριστικά με μια ματιά

Με το MUSCLE, οι χρήστες θα μπορούν εύκολα να προσαρμόσουν τον συμπεριλαμβανόμενο "μυκοειδή διακομιστή", καθορίζοντας τη δική τους λογική περιόδου σύνδεσης ή το πρωτόκολλο ροής μηνυμάτων. Το λογισμικό σας βοηθά να γράψετε τον κωδικό πελάτη σας σε μία από τις γλώσσες προγραμματισμού C ++, C, C #, Java, Delphi ή Python.

Το πρόγραμμα χρησιμοποιεί μνήμη που μοιάζει με το Μήνυμα Μήνυμα, υποστηρίζει την αποστολή πεπλατυσμένων μυών :: Τα μηνύματα μεταξύ των υπολογιστών μέσω των ρευμάτων TCP (Πρωτόκολλο Ελέγχου Μεταφοράς), αναπτύσσουν έναν "μυώδη" διακομιστή & rdquo; σε μια μηχανή διακομιστή που σας επιτρέπει να γράφετε προγράμματα-πελάτες που μπορούν να χρησιμοποιηθούν για επικοινωνία με τον διακομιστή.

Επιπλέον, περιλαμβάνει API μηνυμάτων με ένα και πολλά νήματα που υποστηρίζουν όλες τις προαναφερθείσες γλώσσες προγραμματισμού. Ο & ldquo; muscled server & rdquo; μπορεί να προσαρμοστεί εύκολα, καθορίζοντας ένα πρωτόκολλο ροής μηνυμάτων ή μια λογική περιόδου λειτουργίας.

Ξεκινώντας με το MUSCLE

Μετά από επιτυχημένη σύνδεση, τα προγράμματα-πελάτες μπορούν να καθορίσουν ποιος άλλος είναι συνδεδεμένος στον κεντρικό εξυπηρετητή, καθώς και να αποθηκεύσει τα μηνύματα μυϊκής μνήμης στη μνήμη RAM και να στείλει μηνύματα :: Μηνύματα σε άλλους πελάτες που είναι συνδεδεμένοι στο διακομιστή. Λάβετε υπόψη ότι τα προγράμματα-πελάτες μπορούν να εγγραφούν σε συγκεκριμένα δεδομένα στο διακομιστή και να λαμβάνουν άμεσες ειδοποιήσεις όταν αλλάζουν τα δεδομένα.


Υποστηρίζει ένα ευρύ φάσμα δρομολογήσεων μηνυμάτων

Το λογισμικό έχει σχεδιαστεί για να υποστηρίζει ένα ευρύ φάσμα δρομολογίων μηνυμάτων, συμπεριλαμβανομένων των στυλ τύπου unicast, broadcast-style και multicast, μέσω ενός ευφυούς ιεραρχικού μηχανισμού δρομολόγησης που ταιριάζει με τα πρότυπα.


Υποστηριζόμενα λειτουργικά συστήματα και διαθεσιμότητα

Το MUSCLE εκτελείται σε οποιοδήποτε λειτουργικό σύστημα συμβατό με POSIX. Διανέμεται ως ενιαίο, παγκόσμιο αρχείο πηγών που επιτρέπει στους χρήστες να βελτιστοποιούν την εφαρμογή για το GNU / Linux σύστημα τους. Και οι δύο πλατφόρμες υλικού 32-bit και 64-bit υποστηρίζονται αυτή τη στιγμή.

Τι είναι καινούργιο σε αυτή την έκδοση:

  • tests / Το Makefile-mt δεν προσπαθεί πλέον να συντάξει sessionreflectsession εκτός από την εκτέλεση σε ένα OS που υποστηρίζει το testreflectsession.
  • Έγιναν κάποιες δευτερεύουσες επεξεργασίες και αναδιατάξεις του "MUSCLE by Example" σελίδες.
  • Αντικαταστάθηκε ένας αριθμός `ετικετών 'στο MkDocs με [URLs] (...)
  • Αφαιρέθηκε ιδιωτική κληρονομιά του CountedObject από όλες τις κλάσεις που το είχαν - τώρα περιλαμβάνουν μια μεταβλητή ιδιωτικού μέλους CountedObject. Αυτό έγινε μόνο επειδή όλη αυτή η ιδιωτική κληρονομιά έρριζε τα γραφήματα κληρονομιάς DOxygen.
  • Προστέθηκε μια μακροεντολή DECLARE_COUNTED_OBJECT στο CountedObject.h, έτσι ώστε οποιαδήποτε δυνητική μνήμη-επιβάρυνση των CountedObjects να μπορεί να εξαλειφθεί σε περιπτώσεις όπου η απαρίθμηση αντικειμένων δεν είναι επιθυμητή.
  • Αφαιρέθηκε η υποστήριξη για το -DMUSCLE_AVOID_OBJECT_COUNTING και προστέθηκε μια -DMUSCLE_ENABLE_OBJECT_COUNTING μακροεντολή στη θέση του. (Δηλαδή, η κλάση CountedObject είναι τώρα απενεργοποιημένη από προεπιλογή και πρέπει να είναι ενεργοποιημένη ρητά για να την χρησιμοποιήσετε)
  • Προστέθηκε "MUSCLE από το παράδειγμα" τεκμηρίωση για τα MiscUtilityFunctions. {cpp, h}
  • Αλλαγή ενός αριθμού `ετικετών 'στην πηγή MUSCLE-by-Example MkDocs σε [urls], ώστε οι μέθοδοι που αναφέρουν να μπορούν να αναθεωρηθούν γρήγορα.
  • server / Makefile καθορίζει τώρα το αρχείο libmuscle.a μετά το κύριο (.) αρχείο .o
  • Διορθώθηκαν ορισμένες προειδοποιήσεις gcc στο φάκελο δοκιμών (ανά προτάσεις του Mika)
  • Το UnparseFile () δεν αναφέρει λέξεις-κλειδιά με σωστά διαστήματα. Σταθερή.
  • Διορθώσατε τις εξαρτήσεις στο "MUSCLE by Example" παραδείγματα 'Makefiles.

Τι νέο υπάρχει στην έκδοση:

και τάξεις συμβολοσειρών. Αυτή η μέθοδος συρρικνώνει το αντικείμενο έτσι ώστε η ποσότητα της μνήμης που έχει διατεθεί εσωτερικά να ταιριάζει με το μέγεθος των δεδομένων που πραγματικά κατέχει.

  • Hashtable :: EnsureSize () και Queue :: EnsureSize () τώρα λαμβάνουν ένα προαιρετικό (allowShrink) όρισμα, το οποίο (εάν έχει οριστεί σε αληθές) επιτρέπει τον μικρότερο όγκο της εσωτερικής διάταξης του αντικειμένου.
  • Έχει βελτιστοποιηθεί η συμπεριφορά επέκτασης buffer-κλειδί της κλάσης String για να είναι λίγο πιο αποτελεσματική.
  • Προστέθηκε ένας προφυλακτήρας ενάντια σε μια πιθανή απεριόριστη επανάληψη που θα μπορούσε να συμβεί κατά τη σύνδεση ενός "OUT OF MEMORY" σφάλμα μετά από αποτυχία μνήμης μνήμης, αν ένα LogCallback προσπάθησε να διαθέσει μνήμη.
  • Τι νέο υπάρχει στην έκδοση 6.01:

    • Προστέθηκε μια μέθοδος ευκολίας PrependWord () στην κλάση String.
    • Προστέθηκαν με μεθόδους διευκόλυνσης () για την τάξη String.
    • Προστέθηκε μια μέθοδος SetExplicitDelayMicros () στην κλάση DetectNetworkConfigChangesSession.
    • Προστέθηκε μια μέθοδος IsCopperDetected () στην κλάση NetworkInterfaceInfo, έτσι ώστε ο κώδικας να μπορεί να πει αν ή όχι μια υποδοχή Ethernet έχει καλώδιο συνδεδεμένο σε αυτήν.
    • Προστέθηκε ένα & quot; quietsend & quot; argument σε εξάμετρο.
    • Η εικονική μέθοδος NetworkInterfacesChanged () στην κλάση DetectNetworkConfigChangesSession έχει αλλάξει για να πάρει ένα επιχείρημα που καλεί ποιες διασυνδέσεις δικτύου έχουν αλλάξει συγκεκριμένα. Αυτή η λειτουργικότητα εφαρμόζεται επί του παρόντος μόνο σε Linux, MacOS / X και Windows. Για άλλα λειτουργικά συστήματα, το όρισμα θα είναι πάντα μια κενή λίστα.
    • Διορθώθηκε ένα σφάλμα στην εφαρμογή Linux του 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 () στην κλάση ReflectServer, για ευκολότερη ενεργοποίηση του ελέγχου ταυτότητας SSL στις εξερχόμενες συνδέσεις TCP. Αυτές οι μέθοδοι είναι διαθέσιμες αν ορίζεται MUSCLE_ENABLE_SSL.
    • Προστέθηκαν οι μέθοδοι SetSSLPrivateKey () και SetSSLPublicKeyCertificate () στην κλάση MessageTransceiverThread, για ευκολότερη ενεργοποίηση της λειτουργικότητας SSL κατά τη χρήση των εισερχόμενων εισόδων / εξόδων με σπείρωμα.
    • Προστέθηκε φάκελος ssl_data με κάποιες πληροφορίες σχετικά με τη δημιουργία δημόσιων / ιδιωτικών κλειδιών OpenSSL και ένα παράδειγμα keypair για χρήση στη δοκιμή του OpenSSL.
    • Όταν ορίστηκε το MUSCLE_ENABLE_SSL, η μυϊκή μνήμη τώρα δέχεται ένα προαιρετικό όρισμα 'privatekey = όνομα_αρχείου'. Όταν οριστεί, η λειτουργία SSL θα ενεργοποιηθεί και οι μυς θα δεχθούν μόνο τις εισερχόμενες συνδέσεις TCP που παρουσιάζουν δημόσια κλειδιά που ταιριάζουν με αυτό το ιδιωτικό κλειδί / πιστοποιητικό.
    • Όταν καθορίζεται το MUSCLE_ENABLE_SSL, το portablereflectclient και το qt_example θα αποδεχθούν τώρα ένα προαιρετικό όρισμα 'publickey = filename'. Όταν οριστεί, η λειτουργία SSL θα είναι ενεργοποιημένη και οι πελάτες αυτοί θα συνδεθούν με muscles χρησιμοποιώντας το OpenSSL και θα παρουσιάσουν αυτό το αρχείο ως τα διαπιστευτήρια τους.
    • Προστέθηκε ένα "κινούμενο" στο πλαίσιο ελέγχου qt_example. Ο έλεγχος προκαλεί το παράθυρο να μετακινεί αυτόματα τον δείκτη του. Αυτό είναι διασκεδαστικό και επίσης χρήσιμο αν θέλετε να δοκιμάσετε ένα σενάριο όπου πολλαπλοί πελάτες παράγουν ταυτόχρονα την κυκλοφορία.
    • Δημιούργησε το qt_example demo prettier.
    • Μετονομάσατε τις μακροεντολές C ++ 11 βοηθών σε Hashtable.h και Queue.h για να είναι λιγότερο πιθανό να συγκρουστούν με τις μακροεντολές άλλων πακέτων. * Διορθώθηκαν μερικά μικρά σφάλματα στην κλάση SSLSocketDataIO. o Μετονομάσατε το SSLSocketDataIO :: SetKey () στο SetPrivateKey (). o Μετονομάσατε το SSLSocketDataIO :: SetCertificate () στο SetPublicKeyCertificate (). o AbstractMessageIOGateway :: SetDataIO () είναι τώρα μια εικονική μέθοδος.

    Τι νέο υπάρχει στην έκδοση 5.92:

    • Βελτιωμένη υποστήριξη για μετακινήσεις-σημασιολογία C ++ 11 στις κλάσεις Queue και Hashtable (ενεργοποιημένη μόνο όταν ορίστηκε η εντολή -DMUSCLE_USE_CPLUSPLUS11)
    • Προστέθηκαν κάποια όργανα στην κλάση String, ώστε να μπορώ να παρακολουθήσω πόσες φορές αντιγράφεται, μετακινείται, κτλ. (ενεργοποιείται μόνο όταν ορίζεται το -DMUSCLE_COUNT_STRING_COPY_OPERATIONS)
    • Προστέθηκε μια λειτουργία PrintAndClearStringCopyCounts () που θα εκτυπώσει τα δεδομένα λειτουργίας String που συλλέχθηκαν παραπάνω.
    • Προστέθηκε κάποια SFINAE μαγεία στο muscleSwap (), ώστε να ανταλλάσσεται καλώντας το SwapContents () όταν είναι δυνατό, αντί να αντιγράψετε σε ένα προσωρινό αντικείμενο.
    • Προστέθηκε ένας κατασκευαστής λίστας initializer και η υπερφορτίση του AddTailMulti () στην κλάση Queue (διαθέσιμη μόνο όταν ορίστηκε -DMUSCLE_USE_CPLUSPLUS11, φυσικά)
    • Για να αποφύγετε τις διενέξεις με τη νέα υποστήριξη για την εκπόνηση προτύπων C ++ 11, μετονομάστε την ουρά Queue και την υπερβολική φόρτωση του πίνακα Queue :: AddTail () στο AddTailMulti ().
    • Για να αποφύγετε τις διενέξεις με τη νέα υποστήριξη για την εκπόνηση προτύπων C ++ 11, μετονομάστε το Queue ή AddHead () στο AddHeadMulti ().
    • Αντικαταστάθηκε η μακροεντολή MCRASH_IMPL με μια κλήση προς επιβεβαίωση (ψευδής).
    • Λιγότερο συμβατό με συμβατότητα με Android
    • Πολλά από τα προγράμματα του φακέλου δοκιμών δεν συντάχθηκαν κάτω από το C ++ 11. Σταθερή.
    • Επιδιορθώθηκαν διάφορα πιθανά σφάλματα που εντοπίστηκαν από το εργαλείο στατικής ανάλυσης του clang.

    Τι νέο υπάρχει στην έκδοση 5.91:

    • Προστέθηκε η μέθοδος ευκολίας EnsureCanPut () στην κλάση Hashtable.
    • Προστέθηκε η μέθοδος ευκολίας EnsureCanAdd () στην κλάση Queue.
    • Έχει αλλάξει το DoMutexAtomicIncrement () για να είναι μια λειτουργία inline για να κάνει την κλήση πιο αποτελεσματική.
    • Αλλάξατε QMessageTransceiverThread και QAcceptSocketsThread για να καλέσετε QCoreApplication :: postEvent () αντί για QApplication :: postEvent (), για να επιτρέψετε εφαρμογές Qt που δεν είναι GUI.
    • Ενημερώθηκε το έγγραφο του οδηγού για αρχάριους ώστε να αντικατοπτρίζει τη βελτιωμένη υποστήριξη UDP της MUSCLE.
    • Συγχωνεύθηκε σε ορισμένες αλλαγές συμβατότητας Android που παρέχονται από τον Jean-FranA§ois Mullet.
    • Η χρήση της σημαίας μεταγλώττισης MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS θα προκαλέσει την κατάρρευση του MUSCLE κατά την εκκίνηση λόγω ενός προβλήματος παραγγελίας. Αυτό έχει οριστεί τώρα.
    • Η σημαία μεταγλώττισης MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS χρησιμοποιήθηκε στο παρελθόν μόνο εάν δεν υπήρχε άλλη εφαρμογή του AtomicCounter. Τώρα η σημαία έχει υψηλότερη προτεραιότητα, οπότε ο ορισμός της σημαίας σημαίνει ότι θα χρησιμοποιηθούν τα Mutexes, ακόμα κι αν είναι διαθέσιμος ένας άλλος (πιο αποτελεσματικός) μηχανισμός.

    Τι νέο υπάρχει στην έκδοση 5.90:

    • Προστέθηκε μια μέθοδος GetPacketMaximumSize () στην κλάση DataIO για να επιτρέψει στον κώδικα της πύλης να χειρίζεται πιο έξυπνα την πακετοποιημένη επικοινωνία στυλ UDP.
    • Το MessageIOGateway λειτουργεί πλέον χρήσιμα σε συνδυασμό με το UDPSocketDataIO.
    • Προστέθηκαν οι λειτουργίες template του CreateObjectFromArchiveMessage () στο Message.h, για να χρησιμεύσουν ως αντίγραφο της αποκατάστασης από το GetArchiveMessageFromPool (), κτλ.
    • AtomicCounter :: AtomicInstance () επιστρέφει τώρα ένα boolean (true αν η νέα τιμή του μετρητή είναι ίση με μία).
    • Τροποποίησε την κλάση HashtableIterator έτσι ώστε οι επαναλήψεις Hashtable μόνο για ανάγνωση να είναι τώρα ασφαλείς με νήματα ακόμη και αν δεν έχει οριστεί η σημαία HTIT_FLAG_NOREGISTER.
    • Προστέθηκε μια κλάση muscle_thread_id στο SetupSystem.h, για να αντιπροσωπεύσει σωστά ένα ID του νήματος με ουδέτερο τρόπο εφαρμογής.
    • Προστέθηκε ένα "αδιέξοδο" προγράμματος στο φάκελο δοκιμών. Το πρόγραμμα αυτό κινδυνεύει σκόπιμα να δημιουργήσει ένα αδιέξοδο, ως τρόπο άσκησης / απόδειξης της δοκιμής αδιεξόδου.
    • Προστέθηκε υποστήριξη για μια -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS σημαία γραμμής εντολών, για όσους προτιμούν να αποφύγουν τα γενικά έξοδα της αυτόματης ασφάλειας νήματος και υπόσχονται να παράσχουν HTIT_FLAG_NOREGISTER τα επιχειρήματα με το χέρι όπου είναι απαραίτητο.
    • Προστέθηκε μια προαιρετική cache αναζήτησης LRU στη συνάρτηση GetHostByName (), ώστε να μπορεί να επιστρέψει πιο γρήγορα όταν τα ίδια ονόματα ξενιστών επιλύονται ξανά και ξανά.
    • Προστέθηκε μια συνάρτηση SetHostNameCacheSettings () που ενεργοποιεί και ρυθμίζει την προσωρινή μνήμη αναζήτησης LRU στο GetHostByName ().
    • Προστέθηκε υποστήριξη για το "dnscache" και "dnscachesize" εντολών της γραμμής εντολών στο HandleStandardDaemonArgs (), ώστε να επιτρέπεται η προδιαγραφή της γραμμής εντολών της συμπεριφοράς της κρυφής μνήμης αναζήτησης LRU.
    • Τροποποίησε την κλάση Hashtable έτσι ώστε οι τιμές _iterHead, _iterTail και _freeHead να είναι πλέον uint32s αντί δείκτες, για να μειώσουν τη χρήση της μνήμης.
    • Αφαιρέσατε τη μέθοδο ThreadLocalStorage :: SetFreeHeldObjectsOnExit () και προσθέσατε ένα boolean όρισμα στον κατασκευαστή της, επειδή pthreads δεν σας επιτρέπουν να αλλάξετε τη ρύθμιση μετά την κλήση του pthread_key_create ().
    • Μετακινήθηκε το GetCurrentThreadID () στην κλάση muscle_thread_id ως μια συνιστώσα στατικών μελών και το άλλαξε για να επιστρέψει ένα αντικείμενο muscle_thread_id αντί για το ανυπόγραφο.
    • Αλλάξατε το προεπιλεγμένο όνομα κεντρικού υπολογιστή για περιόδους σύνδεσης χωρίς γνωστή διεύθυνση IP από το & quot; σε "_unknown_", καθώς οι γωνιακοί βραχίονες στην πρώην σειρά έχουν μια ιδιαίτερη σημασία από την απελευθέρωση 5.84 και αυτό θα μπορούσε να παρεμποδίσει την αντιστοίχιση της διαδρομής κόμβου με αθέλητους τρόπους.
    • Οι μέθοδοι CalculateChecksum () στο Message.cpp έχουν τροποποιηθεί ώστε να είναι πιο ισχυρές για την ανίχνευση διαφορών μεταφοράς δεδομένων.
    • Αφαιρέσατε την υποστήριξη MUSCLE_USE_QT_FOR_ATOMIC_OPERATIONS από το AtomicCounter.h, δεδομένου ότι η τάξη QAtomicInt του Qt δεν υποστηρίζει τη λειτουργικότητα που απαιτεί η νέα τιμή επιστροφής της μεθόδου AtomicInstance ().
    • Αφαιρέθηκαν τα MessageIOGateway :: FlattenMessage () και MessageIOGateway :: UnflattenMessage (). Προστέθηκαν στη θέση τους: MessageIOGateway :: FlattenHeaderAndMessage () και MessageIOGateway :: UnflattenHeaderAndMessage (). Αυτές οι νέες μέθοδοι ασχολούνται ταυτόχρονα τόσο με τους byte κεφαλίδας όσο και με το σώμα του μηνύματος.
    • Προστέθηκε ένα αρχείο udpproxy.vcproj στο φάκελο δοκιμών, για να συμβάλει στην κατάρτιση του udpproxy στα Windows.
    • Μήνυμα: Το Flatten () επαναλαμβάνει τώρα τα πεδία του μηνύματος μία φορά, αντί για δύο φορές.
    • Το GetCurrentThreadID () είναι τώρα μια συνάρτηση inline, αφού μπορεί να καλείται συχνά από το HashtableIterator.
    • Τροποποίησε τον κώδικα του deadlockfinder για να χρησιμοποιήσει τις ουρές Queues αντί για τους πίνακες Hashtables, καθώς το muscle_thread_id δεν μπορεί πλέον να χρησιμοποιηθεί ως τύπος κλειδιού Hashtable.
    • Σταθερή testudp.cpp για τη σωστή χρήση ενός MessageIOGateway για την επικοινωνία UDP του.
    • Τυλίξτε το ifdefs στο FilePathInfo.cpp λίγο περισσότερο ώστε το statInfo.st_birthtimespec να μην είναι προσπελάσιμο όταν χρησιμοποιείτε SDK MacOS / X που δεν το παρέχουν.
    • Το MessageDataIOGateway δεν προσπαθεί πλέον να ξεδιπλώνει ένα μήνυμα από ένα buffer zlib-αποπληθωρισμένων δεδομένων που δεν ήταν δυνατή η επαναπλήρωση του.
    • Διορθώθηκε ένα σφάλμα στο SendDataUDP () το οποίο θα μπορούσε να προκαλέσει σφάλμα στο SendDataUDP () να επιστρέψει λάθος κατά την αποστολή σε μια διεύθυνση multicast χρησιμοποιώντας λειτουργία μη αποκλεισμού και ο buffer εξόδου ήταν πλήρης.

    Τι νέο υπάρχει στην έκδοση 5.85:

    • Προστέθηκαν κλήσεις LogTime (MUSCLE_LOG_DEBUG) σε όλες τις διαδρομές σφαλμάτων στο MessageIOGateway :: DoInputImplementation () και στο μήνυμα :: Unflatten (), έτσι ώστε να διευκολυνθεί ο προσδιορισμός του χρόνου διακοπής των συνδέσεων TCP διαφθορά.
    • Προστέθηκε μια λειτουργία PreviousOperationHadTransientFailure (), η οποία επιστρέφει true iff errno είναι EINTR ή ENOBUFS.
    • Ο καθορισμός του spamspersecond = -1 θα προκαλέσει πλέον εξώθερμη αποστολή spam δεδομένων όσο το δυνατόν γρηγορότερα.
    • Η εφαρμογή MUSCLE_USE_POLL του SocketMultiplexer.h προμηθεύει το POLLERR στο WSAPoll () αλλά το WSAPoll () δεν υποστηρίζει το POLLERR, έτσι ώστε το WSAPoll () θα επιστρέψει ένα σφάλμα όταν αυτό συνέβη. Εργάστηκε γύρω από το πρόβλημα φιλτράροντας το POLLERR κατά τη σύνταξη με Windows.
    • Διορθώθηκε ένα σφάλμα στο οποίο το send () που επέστρεψε ENOBUFS θα μπορούσε να προκαλέσει την τερματισμό της σύνδεσης υποδοχής, παρόλο που το ENOBUFS δεν είναι θανατηφόρο.
    • Το SocketMultiplexer.cpp δεν θα μεταγλωττιστεί όταν ορίστηκε το MUSCLE_USE_POLL. Σταθερή.
    • Η μέθοδος ZLibCodec :: Deflate () δεν θα συμπιέσει όλα τα δεδομένα σε πολύ μεγάλο buffer (π.χ. πάνω από 42MB). Σταθερή.

    Τι είναι καινούργιο στην έκδοση 5.84:

    • Η σύνταξη αριθμητικής εμβέλειας της κλάσης StringMatcher έχει επεκταθεί, ώστε να μπορείτε πλέον να ορίσετε πολλαπλές περιοχές. Για παράδειγμα, το " θα αντιστοιχούσε τις συμβολοσειρές 19, 20, 21, 25, 30, 31, [...] και "50"
    • Προστέθηκαν οι λειτουργίες μετατροπής GetCurrentTime64ForRunTime64 () και GetRunTime64ForCurrenTime64 () σε TimeUtilityFunctions.h.
    • Προστέθηκε μια μέθοδος χρησιμότητας GetDescendant () στην κλάση DataNode.
    • Προστέθηκαν κατασκευαστές κινήσεων C ++ 11 και χειριστές μετακίνησης-εκχώρησης στις κλάσεις Hashtable, Queue, String, Message και ByteBuffer. Για συμβατότητα προς τα παλαιότερα με παλαιότερους μεταγλωττιστές, αυτός ο κώδικας θα μεταγλωττιστεί μόνο εάν -DMUSCLE_USE_CPLUSPLUS11 έχει οριστεί στη γραμμή καταγραφής.
    • Η κλάση SharedMemory θα μεταβληθεί τώρα σε μια κλάση μη κοινόχρηστης μνήμης αν έχει οριστεί η τιμή -DMUSCLE_FAKE_SHARED_MEMORY.
    • Προστέθηκε δοκιμή testfilepathinfo στο φάκελο δοκιμών.
    • Ενημερώθηκαν όλες οι κεφαλίδες ειδοποιήσεων πνευματικών δικαιωμάτων για να διαβάσετε το 2000-2013 Meyer Sound.
    • Πρόσθετοι χώροι μεταξύ των μακροεντολών (π.χ. UINT32_FORMAT_SPEC) και των σταθερών στοιχειοσειρών (π.χ. "Hello") για να κάνουν τους C ++ 11 συντάκτες ευχαριστημένους.
    • Το ByteBuffer.cpp είχε ένα σφάλμα σύνταξης που θα εμπόδιζε τη σύνταξη σε κεντρικούς κεντρικούς υπολογιστές. Σταθερή.
    • Μόνο για MacOS / X: Αντικαταστάθηκαν οι απόρριψη κλήσεων συνάρτησης άνθρακα με ισοδύναμα Mach, για να αποφευχθούν οι προειδοποιήσεις απόρριψης κάτω από το 10.8.x.

    Τι νέο υπάρχει στην έκδοση 5.83:

    • πάρτε ένα ByteBufferRef ως επιχείρημα.
    • Αφαιρέθηκαν μερικές παρωχημένες / αχρησιμοποίητες μέθοδοι (EnsureBufferSize () και FreeLargeBuffer ()) από την κλάση AbstractMessageIOGateway.
    • Διορθώσαμε ορισμένα τυπογραφικά λάθη στα σχόλια στον υποφάκελο delphi.
    • Η κλάση Hashtable δεν παράγει πλέον προειδοποιήσεις κατά τη μεταγλώττιση στο MSVC με οριστεί η τιμή -DMUSCLE_AVOID_MINIMIZED_HASHTABLES.
    • Διορθώθηκε ένα σφάλμα στο IPAddressAndPort :: ToString () που προκάλεσε διόρθωση των συμβολοσειρών διευθύνσεων IPv4 διφορούμενα όταν (προτιμήστεIPv4Style) ορίστηκε ως ψευδής.

    Παρόμοια λογισμικά

    Άλλο λογισμικό του προγραμματιστή Jeremy Friesner

    AudioMove
    AudioMove

    2 Jun 15

    Σχόλια για MUSCLE

    Τα σχόλια δεν βρέθηκε
    προσθήκη σχολίου
    Ενεργοποιήστε τις εικόνες!
    Αναζήτηση ανά κατηγορία