MUSCLE

ภาพหน้าจอของซอฟแวร์:
MUSCLE
รายละเอียดซอฟแวร์:
รุ่น: 6.82 การปรับปรุง
วันที่อัพโหลด: 22 Jun 18
ผู้พัฒนา: Jeremy Friesner
การอนุญาต: ฟรี
ความนิยม: 76

Rating: 5.0/5 (Total Votes: 1)

MUSCLE ย่อมาจาก Multi User Server Client Linkage Environment และเป็นระบบส่งข้อความแบบโอเพนซอร์สระบบฟรีที่มีประสิทธิภาพสามารถปรับขยายได้และข้ามแพลตฟอร์มซึ่งประกอบด้วยส่วนประกอบของเซิร์ฟเวอร์และไคลเอ็นต์ จะช่วยให้คุณสามารถเขียนซอฟต์แวร์แจกจ่ายได้ทุกรูปแบบจากเกมแบบมัลติเพลย์เยอร์และไคลเอ็นต์การสนทนาของ IRC ไปยังแอปคำนวณของ SETI


คุณสมบัติได้อย่างรวดเร็ว

ด้วย MUSCLE ผู้ใช้จะสามารถปรับแต่งเซิร์ฟเวอร์ "muscled" ที่มีอยู่ได้โดยง่ายด้วยการกำหนดโปรซีเจอร์เซสชันของตนเองหรือโปรโตคอลสตรีมมิงข้อความ ซอฟต์แวร์ช่วยให้คุณเขียนรหัสลูกค้าของคุณได้ในภาษาโปรแกรม C ++, C, C #, Java, Delphi หรือ Python

โปรแกรมจะใช้กล้ามเนื้อเหมือน BMessage :: Messages สนับสนุนการส่งกล้ามเนื้อที่แบน :: ข้อความระหว่างคอมพิวเตอร์ผ่านทาง TCP (Transmission Control Protocol) จะใช้เซิร์ฟเวอร์ & ldquo; muscled server & rdquo; บนเครื่องเซิร์ฟเวอร์ช่วยให้คุณเขียนโปรแกรมไคลเอ็นต์ที่สามารถใช้ในการสื่อสารกับเซิร์ฟเวอร์ได้

นอกจากนี้ยังมี API การส่งข้อความแบบข้อความเดียวและหลายเธรดที่สนับสนุนภาษาโปรแกรมทั้งหมดที่กล่าวมาข้างต้น เซิร์ฟเวอร์ & nbsp; muscled & rdquo; สามารถกำหนดค่าได้ง่ายโดยการกำหนดโปรโตคอลสตรีมมิ่งข้อความหรือตรรกะเซสชัน

เริ่มต้นใช้ MUSCLE

หลังจากการเข้าสู่ระบบที่ประสบความสำเร็จโปรแกรมไคลเอนต์สามารถกำหนดว่าใครที่ถูกล็อกอินเข้าสู่เซิร์ฟเวอร์ส่วนกลางเช่นเดียวกับการจัดเก็บกล้ามเนื้อ :: ข้อความใน RAM (หน่วยความจำของระบบ) และส่งกล้ามเนื้อ :: ข้อความไปยังไคลเอ็นต์อื่น ๆ ที่เชื่อมต่อ ไปยังเซิร์ฟเวอร์ โปรดทราบว่าโปรแกรมไคลเอ็นต์สามารถสมัครรับข้อมูลเฉพาะเจาะจงบนเซิร์ฟเวอร์และรับการแจ้งเตือนทันทีเมื่อมีการเปลี่ยนแปลงข้อมูล


รองรับการกำหนดเส้นทางข้อความได้หลากหลาย

ซอฟต์แวร์ได้รับการออกแบบมาเพื่อรองรับการกำหนดเส้นทางข้อความหลากหลายรูปแบบรวมทั้งรูปแบบที่มีรูปแบบเดียวแบบกระจายและแบบหลายผู้รับผ่านกลไกการกำหนดเส้นทางที่มีรูปแบบอัจฉริยะตามลำดับขั้น


OSes ที่สนับสนุนและความพร้อมใช้งาน

MUSCLE ทำงานบนระบบปฏิบัติการที่รองรับ POSIX ใด ๆ มีการแจกจ่ายเป็นที่เก็บข้อมูลสากลแบบเดียวที่ช่วยให้ผู้ใช้สามารถเพิ่มประสิทธิภาพแอพพลิเคชันสำหรับระบบ GNU / Linux ได้ แพลตฟอร์มฮาร์ดแวร์ทั้งแบบ 32 บิตและ 64 บิตได้รับการสนับสนุนในขณะนี้

มีอะไรใหม่ ในรุ่นนี้:

  • test / Makefile-mt ไม่พยายามรวบรวม testreflects อีกต่อไปยกเว้นเมื่อรันบนระบบปฏิบัติการที่ testreflectsession สนับสนุน
  • การแก้ไขเล็กน้อยและการจัดเรียง & quot; MUSCLE by Example & quot; หน้า.
  • แทนที่ "แท็ก" จำนวนหนึ่งใน MkDocs ด้วย [URL] (... )
  • ลบการสืบทอดมรดกของ CountedObject จากชั้นเรียนทั้งหมดที่มีอยู่แล้ว - ขณะนี้พวกเขารวมตัวแปรสมาชิก Privateed CountedObject แทน การทำเช่นนี้เกิดขึ้นได้ก็เพราะว่าสิ่งที่มรดกภาคเอกชนกำลังยุ่งอยู่กับกราฟการสืบทอด DOxygen
  • เพิ่มมาโคร DECLARE_COUNTED_OBJECT เพื่อ CountedObject.h เพื่อลดความเป็นไปได้ที่อาจเกิดขึ้นกับหน่วยความจำของ CountedObjects ในกรณีที่ไม่ต้องการนับวัตถุ
  • ลบการสนับสนุน --DMUSCLE_AVOID_OBJECT_COUNTING และเพิ่มมาโคร --DMUSCLE_ENABLE_OBJECT_COUNTING ในตำแหน่ง (นั่นคือคลาส CountedObject ถูกปิดใช้งานโดยค่าเริ่มต้นและต้องเปิดใช้งานอย่างชัดเจนเพื่อที่จะใช้)
  • เพิ่มคำว่า "MUSCLE by Example" & quot; เอกสารสำหรับ MiscUtilityFunctions {cpp, h}
  • เปลี่ยนแท็กในแท็ก `MkDocs MUSCLE-by-Example เป็น [urls] เพื่อให้สามารถอ่านวิธีการที่พวกเขากล่าวถึงได้อย่างรวดเร็ว
  • เซิร์ฟเวอร์ / Makefile ตอนนี้ระบุ libmuscle.a หลังจากไฟล์ main () .o
  • แก้ไขคำเตือน gcc บางอย่างในโฟลเดอร์ทดสอบ (ตามคำแนะนำของ Mika)
  • UnparseFile () ไม่ได้ระบุคำหลักด้วยช่องว่างอย่างถูกต้อง คง.
  • แก้ไขการอ้างอิงใน & quot; MUSCLE by Example & quot; ตัวอย่าง Makefiles

  • เพิ่มเมธอด ShrinkToFit () ใน Queue, Hashtable, และชั้นสตริง วิธีนี้ทำให้วัตถุลดลงเพื่อให้จำนวนหน่วยความจำที่จัดสรรภายในตรงกับขนาดของข้อมูลที่ถืออยู่จริง
  • Hashtable :: EnsureSize () และ Queue :: EnsureSize () ใช้อาร์กิวเมนต์ optional (allowShrink) เพื่อให้อาร์เรย์ที่ถูกจัดสรรภายในของอ็อบเจ็กต์ถูกจัดสรรใหม่หากมีขนาดใหญ่กว่าที่จำเป็น
  • ปรับแต่งพฤติกรรมการขยายบัฟเฟอร์ของคลาสสตริงให้มีประสิทธิภาพมากขึ้น
  • เพิ่มการป้องกันซ้ำกับการทับทิมอนันต์ที่อาจเกิดขึ้นขณะบันทึกข้อความ & quot; OUT OF MEMORY & quot; ข้อผิดพลาดหลังจากความล้มเหลวในการจัดสรรหน่วยความจำถ้า LogCallback พยายามจัดสรรหน่วยความจำ

  • มีอะไรใหม่ ในเวอร์ชัน 6.01:

    • เพิ่มเมธอดความสะดวก PrependWord () ลงในคลาสสตริง
    • เพิ่มเมธอดความสะดวกในการใช้ WithReplacements () ลงในคลาสสตริง
    • เพิ่มเมธอด SetExplicitDelayMicros () ลงในคลาส DetectNetworkConfigChangesSession
    • เพิ่มเมธอด IsCopperDetected () ลงในคลาส NetworkInterfaceInfo เพื่อให้รหัสสามารถระบุว่ามีช่องเสียบสายเคเบิลเชื่อมต่ออยู่หรือไม่
    • เพิ่มคำว่า & quot; quietsend & quot; อาร์กิวเมนต์ที่ hexterm
    • เมธอด VirtualInterfacesChanged () ในคลาส DetectNetworkConfigChangesSession ได้รับการเปลี่ยนแปลงเพื่อใช้อาร์กิวเมนต์ที่เรียกใช้ว่าอินเทอร์เฟซเครือข่ายใดที่มีการเปลี่ยนแปลง ฟังก์ชันนี้ใช้งานได้ภายใต้ Linux, MacOS / X และ Windows เท่านั้น สำหรับอาร์เรย์อื่น ๆ ของ OS จะเป็นรายการว่างเปล่า
    • แก้ไขข้อผิดพลาดในการใช้งาน 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 อย่างรวดเร็วเมื่อใช้ I / O แบบเกลียว
      • เพิ่มโฟลเดอร์ ssl_data พร้อมกับข้อมูลเกี่ยวกับการสร้างกุญแจสาธารณะ / คีย์สาธารณะของ OpenSSL และตัวอย่างคีย์พพ์สำหรับใช้ทดสอบ OpenSSL
      • เมื่อกำหนด MUSCLE_ENABLE_SSL แล้ว muscled จะยอมรับอาร์กิวเมนต์ 'privatekey = filename' ที่ไม่บังคับ เมื่อระบุไว้โหมด SSL จะเปิดใช้งานและ muscled จะยอมรับเฉพาะการเชื่อมต่อ TCP ที่มาที่แสดงคีย์สาธารณะที่ตรงกับคีย์ส่วนตัว / ใบรับรองนี้เท่านั้น
      • เมื่อกำหนด MUSCLE_ENABLE_SSL แล้ว portablereflectclient และ qt_example จะยอมรับอาร์กิวเมนต์ 'publickey = filename' ที่ไม่บังคับ เมื่อระบุไว้โหมด SSL จะเปิดใช้งานและไคลเอ็นต์เหล่านี้จะเชื่อมต่อกับ muscled โดยใช้ OpenSSL และแสดงไฟล์นี้เป็นข้อมูลรับรองของตน
      • เพิ่ม & quot; ภาพเคลื่อนไหว & quot; เพื่อตรวจสอบ qt_example การตรวจสอบจะทำให้หน้าต่างเลื่อนตัวบ่งชี้ไปรอบ ๆ โดยอัตโนมัติ นี่เป็นเรื่องสนุกและมีประโยชน์หากคุณต้องการทดสอบภาพจำลองที่หลายเครื่องสร้างการเข้าชมพร้อมกัน
      • ทำการทดสอบ qt_example prettier
      • เปลี่ยนชื่อแมโคร C ++ 11-helper ใน Hashtable.h และ Queue.h เพื่อทำให้มีโอกาสน้อยที่จะชนกับแมโครของแพคเกจอื่น ๆ * แก้ไขข้อผิดพลาดเล็กน้อยในชั้น SSLSocketDataIO เปลี่ยนชื่อ SSLSocketDataIO :: SetKey () เป็น SetPrivateKey () o เปลี่ยนชื่อ SSLSocketDataIO :: SetCertificate () เป็น SetPublicKeyCertificate () o AbstractMessageIOGateway :: SetDataIO () เป็นเสมือนวิธีการ

      มีอะไรใหม่ ในเวอร์ชัน 5.92:

      • ปรับปรุงการสนับสนุน C + +11 เคลื่อนไหวความหมายในชั้นเรียนและ Hashtable (เปิดใช้งานเฉพาะเมื่อ -DMUSCLE_USE_CPLUSPLUS11 ถูกกำหนดไว้)
      • เพิ่มเครื่องมือในชั้น String เพื่อที่ฉันจะได้ดูว่ามีการคัดลอกย้ายและอื่น ๆ กี่ครั้งที่วัตถุสตริง (เปิดใช้งานเฉพาะเมื่อมีการระบุ --DIUSCLE_COUNT_STRING_COPY_OPERATIONS)
      • เพิ่มฟังก์ชัน PrintAndClearStringCopyCounts () ซึ่งจะพิมพ์ข้อมูลการดำเนินงานสตริงที่เก็บรวบรวมไว้ด้านบน
      • เพิ่มเวทมนตร์ SFINAE ลงใน muscleSwap () เพื่อแลกกับ SwapContents () เมื่อเป็นไปได้แทนที่จะคัดลอกไปยังออบเจกต์ชั่วคราว
      • เพิ่ม constructor ของ initializer-list และเกินพิกัดของ AddTailMulti () ไปยังชั้นเรียน Queue (ใช้ได้เฉพาะเมื่อมีการกำหนด --DMUSCLE_USE_CPLUSPLUS11)
      • เปลี่ยนชื่อ Queue และ Overload อาเรย์ของ Queue :: AddTail () เป็น AddTailMulti () เพื่อหลีกเลี่ยงความขัดแย้งกับเทมเพลต C + + + ใหม่ในการแยกวิเคราะห์การสนับสนุน
      • เปลี่ยนชื่อ Queue และ Array Overloads ของ Queue :: AddHead () เป็น AddHeadMulti () เพื่อหลีกเลี่ยงความขัดแย้งกับเทมเพลต C + + + ใหม่ในการแยกวิเคราะห์การสนับสนุน
      • แทนที่มาโคร MCRASH_IMPL ด้วยการโทรเพื่อยืนยัน (เท็จ)
      • ปรับแต่งความเข้ากันได้กับ Android ได้น้อยมาก
      • หลายโปรแกรมในโฟลเดอร์ทดสอบไม่ได้รวบรวมภายใต้ C ++ 11 คง.
      • แก้ไขข้อผิดพลาดที่อาจเกิดขึ้นหลายอย่างซึ่งตรวจพบโดยเครื่องมือวิเคราะห์แบบคงที่ของหวง

      • มีอะไรใหม่ ในเวอร์ชัน 5.91:

        • เพิ่มวิธีการสะดวกสบายของ EnsureCanPut () ในคลาส Hashtable
        • เพิ่มวิธีการสะดวกสบายของ EnsureCanAdd () ในชั้นเรียน Queue
        • เปลี่ยน DoMutexAtomicIncrement () เป็นฟังก์ชันแบบอินไลน์เพื่อทำให้การเรียกใช้งานมีประสิทธิภาพมากขึ้น
        • เปลี่ยน QMessageTransceiverThread และ QAcceptSocketsThread เพื่อเรียกใช้ QCoreApplication :: postEvent () แทนที่จะเป็น QApplication :: postEvent () เพื่ออนุญาตแอพพลิเคชันที่ไม่ใช่ GUI Qt
        • อัปเดตเอกสารคำแนะนำสำหรับผู้เริ่มต้นใช้งานเพื่อให้สอดคล้องกับการสนับสนุน 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 เพื่อให้รหัสเกตเวย์สามารถจัดการการสื่อสารแบบ packetized ได้อย่างชาญฉลาดมากขึ้น
          • MessageIOGateway ทำงานเป็นประโยชน์ร่วมกับ UDPSocketDataIO
          • เพิ่มฟังก์ชัน Templated ของ CreateObjectFromArchiveMessage () ให้กับ Message.h เพื่อใช้เป็นคู่ฉบับด้านการกู้คืนเพื่อ GetArchiveMessageFromPool () ฯลฯ
          • AtomicCounter :: AtomicIncrement () จะคืนค่าบูลีน (true และค่าตัวนับใหม่จะเท่ากับหนึ่งค่า)
          • ปรับเปลี่ยนคลาส HashtableIterator เพื่อให้การกำหนดค่าแบบ Hashtable แบบอ่านอย่างเดียวสามารถอ่านได้ในขณะนี้แม้ว่าจะไม่ได้ระบุค่าสถานะ HTIT_FLAG_NOREGISTER ไว้
          • เพิ่ม class muscle_thread_id ไปที่ SetupSystem.h เพื่อแสดงรหัสเธรดในรูปแบบที่ใช้งานได้อย่างถูกต้อง
          • เพิ่มคำว่า & quot; การหยุดชะงัก & quot; โปรแกรมไปยังโฟลเดอร์ทดสอบ โปรแกรมนี้ตั้งใจสร้างความสับสนให้เป็นวิธีการออกกำลังกาย / สาธิตการทดสอบ deadlockfinder
          • เพิ่มการสนับสนุนธงบรรทัดคำสั่ง -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS สำหรับผู้ที่ต้องการหลีกเลี่ยงค่าใช้จ่ายด้านความปลอดภัยหัวข้อโดยอัตโนมัติและสัญญาว่าจะจัดหาอาร์กิวเมนต์ HTIT_FLAG_NOREGISTER ด้วยตนเองหากจำเป็น
          • เพิ่มแคชการค้นหา LRU ที่เป็นตัวเลือกไปยังฟังก์ชัน GetHostByName () เพื่อให้สามารถส่งกลับได้เร็วขึ้นเมื่อมีการแก้ไขชื่อโฮสต์เดิมซ้ำไปซ้ำแล้วซ้ำอีก
          • เพิ่มฟังก์ชัน SetHostNameCacheSettings () ที่เปิดใช้งานและปรับแคชการค้นหา LRU ใน GetHostByName ()
          • เพิ่มการสนับสนุนสำหรับ & quot; dnscache & quot; และ & quot; dnscachesize & quot; อาร์กิวเมนต์บรรทัดคำสั่งใน HandleStandardDaemonArgs () เพื่อให้สามารถระบุลักษณะการทำงานของแคชของแคช LRU ของบรรทัดคำสั่งได้
          • ปรับเปลี่ยนคลาส Hashtable เพื่อให้ค่าสมาชิก _iterHead, _iterTail และ _freeHead เป็น uint32 มากกว่าคำแนะนำเพื่อลดการใช้หน่วยความจำ
          • ลบเมธอด ThreadLocalStorage :: SetFreeHeldObjectsOnExit () และเพิ่มอาร์กิวเมนต์ boolean ไปยังตัวสร้างแทนเนื่องจาก pthreads ไม่อนุญาตให้คุณเปลี่ยนการตั้งค่านั้นหลังจากเรียก pthread_key_create ()
          • ย้าย GetCurrentThreadID () ลงในคลาส muscle_thread_id เป็นฟังก์ชันสมาชิกแบบคงที่และเปลี่ยนเป็น object แบบ muscle_thread_id แทน unsigned long
          • เปลี่ยนชื่อโฮสต์ดีฟอลต์สำหรับเซสชันโดยไม่มีที่อยู่ IP ที่รู้จักจาก & quot; & quot; ไปที่ & quot; _unknown_ & quot; เนื่องจากวงเล็บมุมในสตริงเดิมมีความหมายพิเศษเป็นรุ่น 5.84 และอาจรบกวนการจับคู่โหนดกับเส้นทางที่ไม่ได้ตั้งใจ
          • เมธอด CalculateChecksum () ใน Message.cpp ได้รับการแก้ไขให้มีประสิทธิภาพมากขึ้นในการตรวจจับความแตกต่างระหว่างการย้ายข้อมูล
          • ลบการสนับสนุน MUSCLE_USE_QT_FOROMATICICOPERATIONS จาก AtomicCounter.h เนื่องจากคลาส QaTomicInt ของ Qt ไม่สนับสนุนฟังก์ชันที่จำเป็นต้องใช้ค่าส่งคืนใหม่ของเมธอด AtomicIncrement ()
          • ลบ MessageIOGateway :: FlattenMessage () และ MessageIOGateway :: UnflattenMessage () เพิ่มในตำแหน่ง: MessageIOGateway :: FlattenHeaderAndMessage () และ MessageIOGateway :: UnflattenHeaderAndMessage () วิธีการใหม่เหล่านี้จัดการทั้งไบต์ส่วนหัวและเนื้อหาข้อความพร้อมกัน
          • เพิ่มไฟล์ udpproxy.vcproj ลงในโฟลเดอร์ทดสอบเพื่อช่วยในการคอมไพล์ udpproxy ใน Windows
          • ข้อความ: Flatten () จะทำซ้ำในฟิลด์ในข้อความเพียงครั้งเดียวแทนการใช้สองครั้ง
          • GetCurrentThreadID () เป็นฟังก์ชันแบบอินไลน์แล้วเนื่องจาก HashtableIterator สามารถเรียกใช้งานได้บ่อยครั้ง
          • ปรับเปลี่ยนรหัส deadlockfinder เพื่อใช้ Queues แทน Hashtables เนื่องจาก muscle_thread_id ไม่สามารถใช้เป็นคีย์ชนิด Hashtable ได้อีกต่อไป
          • แก้ไข testudp.cpp เพื่อใช้ MessageIOGateway อย่างถูกต้องสำหรับการสื่อสาร UDP
          • ปรับแต่ง ifdefs ใน FilePathInfo.cpp อีกเล็กน้อยเพื่อไม่ให้ statInfo.st_birthtimespec เข้าถึงเมื่อใช้ MacOS / X SDK ที่ไม่ได้ให้มา
          • MessageDataIOGateway ไม่พยายามจะยกเลิกการล้างข้อมูลจากบัฟเฟอร์ zlib ที่คลาดเคลื่อนจนไม่สามารถขยายตัวอีกครั้งได้
          • แก้ไขข้อผิดพลาดใน SendDataUDP () ที่อาจทำให้ SendDataUDP () ส่งข้อผิดพลาดอย่างไม่ถูกต้องเมื่อส่งไปยังที่อยู่ multicast โดยใช้โหมด non-blocking และบัฟเฟอร์ผลลัพธ์เต็ม

          • มีอะไรใหม่ ในเวอร์ชัน 5.85:

          • เพิ่ม LogTime (MUSCLE_LOG_DEBUG) เรียกใช้เส้นทางข้อผิดพลาดทั้งหมดใน MessageIOGateway :: DoInputImplementation () และ Message :: Unflatten () เพื่อให้ง่ายต่อการตรวจสอบเมื่อมีการยกเลิกการเชื่อมต่อ TCP เนื่องจากข้อมูล การทุจริต.
          • เพิ่มฟังก์ชัน PreviousOperationHadTransientFailure () ซึ่งจะส่งคืน errno ที่แท้จริงและ errno คือ EINTR หรือ ENOBUFS
          • การระบุ spamspersecond = -1 จะทำให้ hexterm ส่งข้อมูลสแปมให้เร็วที่สุดเท่าที่จะเป็นไปได้
          • การใช้งาน MUSCLE_USE_POLL ของ SocketMultiplexer.h กำลังส่ง POLLERR ไปยัง WSAPOL () แต่ WSAPOL () ไม่สนับสนุน POLLERR ดังนั้น WSAPOL () จะส่งคืนข้อผิดพลาดเมื่อเกิดเหตุการณ์นี้ขึ้น แก้ปัญหาโดยการกรอง POLLERR เมื่อคอมไพล์ภายใต้ Windows
          • แก้ไขข้อผิดพลาดที่ส่ง () กลับ 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; & quot; & quot; & quot;
            • เพิ่มฟังก์ชันการแปลง Conversion GetCurrentTime64ForRunTime64 () และ GetRunTime64ForCurrenTime64 () เป็น TimeUtilityFunctions.h
            • เพิ่มเมท็อดสาธารณูปโภค GetDescendant () ลงในคลาส DataNode
            • เพิ่มตัวย้าย C + +11 และตัวย้ายการกำหนดค่าไปยังคลาส Hashtable, Queue, String, Message และ ByteBuffer สำหรับความเข้ากันได้ย้อนหลังกับคอมไพเลอร์รุ่นเก่ารหัสนี้จะได้รับการคอมไพล์ถ้ามีการระบุ -DMUSCLE_USE_CPLUSPLUS11 ในบรรทัดการคอมไพล์แล้ว
            • คลาส SharedMemory จะอยู่ในชั้นเรียนที่ไม่ใช่หน่วยความจำร่วมหากระบุ -DMUSCLE_FAKE_SHARED_MEMORY
            • เพิ่มการทดสอบ testfilepathinfo ลงในโฟลเดอร์ทดสอบ
            • อัปเดตหัวเรื่องของหัวเรื่องลิขสิทธิ์ทั้งหมดเพื่ออ่าน Meyer Sound 2000-2013
            • เพิ่มช่องว่างระหว่างโทเค็นแมโคร (เช่น UINT32_FORMAT_SPEC) และค่าสตริง (เช่น & quot; Hello & quot;) เพื่อให้คอมไพเลอร์ C ++ 11 มีความสุข
            • ByteBuffer.cpp มีข้อผิดพลาดทางไวยากรณ์ซึ่งอาจป้องกันไม่ให้คอมไพล์จากโฮสต์ขนาดใหญ่ของ endian คง.
            • MacOS / X เท่านั้น: แทนที่ฟังก์ชัน Carbon ที่เลิกใช้แล้วโดยใช้พารามิเตอร์ Mach เพื่อหลีกเลี่ยงคำเตือนการเลิกใช้งานภายใต้ 10.8.x

            • มีอะไรใหม่ ในเวอร์ชัน 5.83:

              • เพิ่มเวอร์ชันสะดวกสบายของ InflateByteBuffer () และ DeflateByteBuffer () ใช้ ByteBufferRef เป็นอาร์กิวเมนต์
              • ลบวิธีที่ล้าสมัย / ไม่ได้ใช้ออก (EnsureBufferSize () และ FreeLargeBuffer ()) จากคลาส AbstractMessageIOGateway
              • แก้ไขความผิดพลาดบางอย่างในความคิดเห็นในโฟลเดอร์ย่อย delphi
              • คลาส Hashtable จะไม่สร้างคำเตือนเมื่อคอมไพล์ภายใต้ MSVC ด้วย -DMUSCLE_AVOID_MINIMIZED_HASHTABLES ที่กำหนดไว้
              • แก้ไขข้อบกพร่องใน IPAddressAndPort :: ToString () ที่ทำให้สตริงที่อยู่ IPv4 ได้รับการจัดรูปแบบไม่ชัดเจนเมื่อ (preferIPv4Style) ถูกตั้งเป็น false

ซอฟต์แวร์ที่คล้ายกัน

Ojota
Ojota

20 Feb 15

GT.M
GT.M

18 Feb 15

H2 Database Engine
H2 Database Engine

17 Feb 15

Redis
Redis

28 Sep 15

ซอฟแวร์อื่น ๆ ของนักพัฒนา Jeremy Friesner

AudioMove
AudioMove

2 Jun 15

ความคิดเห็นที่ MUSCLE

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!