ZeroMQред рдЕрдзреНрдпрд╛рдп 1: рдЖрд░рдВрдн рдХрд░рдирд╛

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдореИрдВ "ZeroMQ" рдкреБрд╕реНрддрдХ рдХрд╛ рдПрдХ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред ZeroMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╕реАрдЦреЗрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджреЗрд╢ рдкреИрдЯрд░реНрди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рд╕рд╛рдордЧреНрд░реА


ZeroMQ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдпрд╣ рдЕрдзреНрдпрд╛рдп ZeroMQ рдХрд╛ рдкрд░рд┐рдЪрд╛рдпрдХ рд╣реИ рдФрд░ рдкрд╛рдардХ рдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдкреНрд░рдгрд╛рд▓реА рдХреНрдпрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ ZeroMQ рдХреНрдпрд╛ рд╣реИред рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ:




рд╢реБрд░реБрдЖрдд


рдЬреАрд╡рди рднрд░ рд▓реЛрдЧ рд╕рд╛рдорд╛рдЬрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рддрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рджреВрд╕рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпреВрдбреАрдкреА, рдЯреАрд╕реАрдкреА, рдПрдЪрдЯреАрдЯреАрдкреА, рдЖрдИрдкреАрдПрдХреНрд╕, рд╡реЗрдмрд╕реНрдХреЗрдЯ рдФрд░ рдЕрдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред
рдлрд┐рд░ рднреА, рдЗрддрдиреЗ рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рддреЗрдЬрд╝ рдЪрд╛рд╣рд┐рдПред рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрддрддрд╛ рдЧрддрд┐ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рддреА рд╣реИ, рдЬрдмрдХрд┐ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд┐рд╡рд░рдгреЛрдВ рд╕реЗ рд╕реАрдзреЗ рдирд┐рдкрдЯрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред ZeroMQ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
ZeroMQ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрджреЗрд╢ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рджреЗрдЦреЗрдВред

рд╕рдВрджреЗрд╢ рдХреА рдХрддрд╛рд░


рд╕рдВрджреЗрд╢ рдХреНрдпреБрдЗрдВрдЧ, рдпрд╛, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдлреАрдлреЛ (рдлрд░реНрд╕реНрдЯ рдЗрди рдлрд░реНрд╕реНрдЯ рдЖрдЙрдЯ), рдмреБрдирд┐рдпрд╛рджреА рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдХрддрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХрддрд╛рд░ рдпрд╛ рджреЛ-рддрд░рдлрд╝рд╛ рдХрддрд╛рд░, рдЬрд┐рд╕рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдХреЙрд▓рд░ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрддреА рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЪрд╛рд╣реЗ рдХреБрдЫ рднреА рд╣реЛ рдЬрд╛рдПред рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмрд╛рддрдЪреАрдд рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рдЦреНрдд рдХрддрд╛рд░ рдЕрдиреБрдХреНрд░рдо рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдХрдореА рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬреЛ рдЖрдкрдХреЛ рднреЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рддреБрд░рдВрдд рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рддрдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред



рд╕рдВрджреЗрд╢ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд░рдирд╛ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╣рдо рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреЗ рд╣реИрдВред
рд╕рд╛рдзрд╛рд░рдг рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рдордп рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рддрдм рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЙрд╕рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред



рд╣рдо рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдореЙрдбрд▓ рдореЗрдВ, рдереНрд░реЗрдбреНрд╕ рдХреЛ рдПрдХ рд╣реА рдкреНрд░реЛрд╕реЗрд╕рд░ рдпрд╛ рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ / рдХреЛрд░ рдкрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ I / O (AIO) рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ I / O рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред AIO рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИред AIO рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдХ рдереНрд░реЗрдб рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред



рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдХрд╛рд░реНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдПрдЖрдИрдУ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред AIO рдореЗрдВ, рдПрдХ рдХрд╛рд░реНрдп рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдЬрд╛рд░реА рд╣реИред рджреВрд╕рд░реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рд╣рдо AIO рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ ZeroMQ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЖрдк рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдпрд╛ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдПрдХ рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ Google рдЫрд╡рд┐рдпрд╛рдВ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреБрдЫ URL рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рд╡реЗ рдлрд╝реЙрд░реНрдо рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рджрд┐рдП рдЧрдП URL рдХреЗ рд▓рд┐рдП рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА:

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ URL рдбреЗрдЯрд╛ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЙрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ, рдЖрдкрдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

ZeroMQ рдХрд╛ рдкрд░рд┐рдЪрдп


рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ, рд╣рдордиреЗ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдПрдХ рд╕рдВрджреЗрд╢ рдкрдВрдХреНрддрд┐ рдХреНрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЗ рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪрд╛рдпрд╛, рдЬреЛ рдХрд┐ рдЬрд╝реАрд░реЛ-рдХреНрдпреВ рдХреЗ рд▓рд┐рдП рд╣реИред ZeroMQ рд╕реЛрд╕рд╛рдпрдЯреА рдиреЗ рдЗрд╕реЗ "рд╕реНрдЯреЗрд░реЙрдпрдб рд╕реЙрдХреЗрдЯреНрд╕" рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, ZeroMQ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рд╣рдореЗрдВ ZeroMQ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдиреА рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ ActiveMQ, WebSphereMQ, рдпрд╛ RabbitMQ рдЬреИрд╕реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░рдмрджреНрдз рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рд╣реИред ZeroMQ рдЕрд▓рдЧ рд╣реИред рд╡рд╣ рд╣рдореЗрдВ рдЕрдкрдиреА рд╕рдВрджреЗрд╢ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред
рдпрд╣ рдПрдЖрд░рдПрдо рд╕реЗ рдЗрдЯреЗрдирд┐рдпрдо рддрдХ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ 20 рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдЖрд░рд╛рдо

ZeroMQ рд╕рд░рд▓ рд╣реИред рд╣рдо рдХреБрдЫ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ I / O рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ ZeroMQ рднреА I / O рд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╕рдордп ZeroMQ I / O рд╕реНрдЯреНрд░реАрдо рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╛рдХреА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, ZeroMQ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдЙрддреНрдкрд╛рджрдХрддрд╛

ZeroMQ рддреЗрдЬ рд╣реИред рджреВрд╕рд░рд╛ рдЬреАрд╡рди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдирд┐рд░рдВрддрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ 13.4 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 4,100,000 рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред ZeroMQ рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рд╣реИред

рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛


рдЗрд╕рд▓рд┐рдП, рдЬрдм рд╣рдордиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ ZeroMQ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рд╣рд╛рдВ, рд╣рдо рдкреНрд░рд╕рд┐рджреНрдз рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗред
рдЖрдЗрдП рдПрдХ рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИред рдЬрдм рднреА рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдПрдХ hello рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рддреЛ рд╕рд░реНрд╡рд░ world рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ 4040 рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ, рддрджрдиреБрд╕рд╛рд░, рдЙрд╕реА рдкреЛрд░реНрдЯ рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░реНрд╡рд░ рдХреЛрдб рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдПрдХ world рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ:

 #include <string.h> #include <stdio.h> #include <unistd.h> #include "zmq.h" int main (int argc, char const *argv[]) { void* context = zmq_ctx_new(); void* respond = zmq_socket(context, ZMQ_REP); zmq_bind(respond, "tcp://*:4040"); printf("StartingтАж\n"); for(;;) { zmq_msg_t request; zmq_msg_init(&request); zmq_msg_recv(&request, respond, 0); printf("Received: hello\n"); zmq_msg_close(&request); sleep(1); // sleep one second zmq_msg_t reply; zmq_msg_init_size(&reply, strlen("world")); memcpy(zmq_msg_data(&reply), "world", 5); zmq_msg_send(&reply, respond, 0); zmq_msg_close(&reply); } zmq_close(respond); zmq_ctx_destroy(context); return 0; } 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ hello рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ:

 #include <string.h> #include <stdio.h> #include <unistd.h> #include "zmq.h" int main (int argc, char const *argv[]) { void* context = zmq_ctx_new(); printf("Client StartingтАж.\n"); void* request = zmq_socket(context, ZMQ_REQ); zmq_connect(request, "tcp://localhost:4040"); int count = 0; for(;;) { zmq_msg_t req; zmq_msg_init_size(&req, strlen("hello")); memcpy(zmq_msg_data(&req), "hello", 5); printf("Sending: hello - %d\n", count); zmq_msg_send(&req, request, 0); zmq_msg_close(&req); zmq_msg_t reply; zmq_msg_init(&reply); zmq_msg_recv(&reply, request, 0); printf("Received: hello - %d\n", count); zmq_msg_close(&reply); count++; } // We never get here though. zmq_close(request); zmq_ctx_destroy(context); return 0; } 

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓рд╛ рдореВрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реИ: рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдЖрдЗрдП рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦреЗрдВред
рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рд╕рдВрджрд░реНрдн рдФрд░ рдПрдХ рд╕реЙрдХреЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред zmq_ctx_new() рд╡рд┐рдзрд┐ рдПрдХ рдирдпрд╛ рд╕рдВрджрд░реНрдн рдмрдирд╛рддреА рд╣реИред рдпрд╣ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдХреЛ рдХрдИ рдереНрд░реЗрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
zmq_socket(2) рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕реЙрдХреЗрдЯ рдмрдирд╛рддрд╛ рд╣реИред ZeroMQ рд╕реЙрдХреЗрдЯ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЙрд╕ рдереНрд░реЗрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдмрдирд╛рдП рдЧрдП рдереЗред рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕реЙрдХреЗрдЯреНрд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ ZeroMQ рд╕реЙрдХреЗрдЯреНрд╕ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рдПрдХ рдХрддрд╛рд░ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рджреВрд╕рд░реЗ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ-рд░рд┐рд╕реНрдкрд╛рдВрд╕ рдкреИрдЯрд░реНрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред ZeroMQ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрдЕрдк, рдкреБрди: рд╕рдВрдпреЛрдЬрди, рд╡рд┐рдпреЛрдЧ рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рдг рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рддрд╛ рд╣реИред рдЕрдзреНрдпрд╛рдп 3 рдореЗрдВ рд╣рдо рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕реЙрдХреЗрдЯреНрд╕ рдФрд░ ZeroMQ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВрдЧреЗред
рд╕рд░реНрд╡рд░ ZMQ_REP рд╕реЙрдХреЗрдЯ рдФрд░ ZMQ_REP рдкреЛрд░реНрдЯ рдХреЛ ZMQ_REP рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рд╕рдВрджреЗрд╢ рдорд┐рд▓рдиреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╕рд░рд▓ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди

рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдкреИрдЯрд░реНрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ ZeroMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреНрд░рдо рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрд╡рд╛рдм рд╣реИ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднрд╛рдЧ рд╣реИ:

 void* context = zmq_ctx_new(); void* respond = zmq_socket(context, ZMQ_REP); zmq_bind(respond, "tcp://*:4040"); 

рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП ZMQ_REP рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред fair-queue рд░рдгрдиреАрддрд┐ ZMQ_REP рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИ, рдФрд░ last-peer рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИред

рдирд┐рд╖реНрдкрдХреНрд╖-рдХрддрд╛рд░ рдХреА рд░рдгрдиреАрддрд┐

рдпрд╣ рдкреБрд╕реНрддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрддрд╛рд░реЛрдВ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдХрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо fair-queue рд░рдгрдиреАрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдпреЛрдЬрдирд╛ рдФрд░ рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдЪрд┐рдд рд╣реИред



рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдзрд╛рд░рд╛рдПрдВ рдХреНрд░рдорд╢рдГ 16, 2, 6 рдФрд░ 8 рдкреИрдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рднреЗрдЬрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХреЗрд╡рд▓ 12 рдкреИрдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 4 рдкреИрдХреЗрдЯ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░реАрдо 2 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗрд╡рд▓ 2 рдкреИрдХреЗрдЯ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рд╖реНрдкрдХреНрд╖-рдХрддрд╛рд░ рдирд┐рдпрдо рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдореБрдлреНрдд рдирд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдирд┐рдХрд╛рд╕ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдореБрдХреНрдд рди рд╣реЛрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╕реНрдЯреНрд░реАрдо 2 рдХреЛ рдЗрд╕рдХреЗ 2 рдкреИрдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢реЗрд╖ 10 рдХреЛ рд╢реЗрд╖ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдЖрд╡рдХ рд╕рдВрджреЗрд╢ рд░реВрдЯрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ ZMQ_REP рдХрд╛ рдЙрдкрдпреЛрдЧ ZMQ_REP ред рд╕рд╛рдЗрдХрд▓ рдкреНрд▓рд╛рдирд┐рдВрдЧ рдПрдХ рдирд┐рд╖реНрдкрдХреНрд╖ рдХрддрд╛рд░ рд░рдгрдиреАрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ ZeroMQ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рдВрдЪ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдкреНрд░рд╢реНрди рднрд╛рдЧ рд╣реИ:

 void* context = zmq_ctx_new(); printf("Client StartingтАж.\n"); void* request = zmq_socket(context, ZMQ_REQ); zmq_connect(request, "tcp://localhost:4040"); 

рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ZMQ_REQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рднреА рд╕рдВрджреЗрд╢ рдПрдХ round-robin рд░реВрдЯрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрдирдмрд╛рдЙрдВрдб рд░реВрдЯрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ last-peer ред
ZMQ_REQ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реЗрд╡рд╛рдПрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рд╕рднреА рд╕реЗрд╡рд╛рдПрдВ рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рддреЛ zmq_send(3) рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рддрдм рддрдХ рдЕрд╡рд░реБрджреНрдз рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред ZMQ_REQ ZMQ_REP рдФрд░ ZMQ_ROUTER рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред рдЕрдзреНрдпрд╛рдп 4 рдореЗрдВ рд╣рдо ZMQ_ROUTER рдХреЛ ZMQ_ROUTER ред

рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛


рдпрд╣ рднрд╛рдЧ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реЗ рджреА рдЬрд╛рддреА рд╣реИред

 printf("Sending: hello - %d\n", count); zmq_msg_send(&req, request, 0); zmq_msg_close(&req); 

рдХреНрд▓рд╛рдЗрдВрдЯ zmq_msg_send(3) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдиреНрдп рд╕рдВрджреЗрд╢ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реЙрдХреЗрдЯ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред

 int zmq_send_msg(zmq_msg_t *msg, void *socket, int flags) 

zmq_msg_send рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╕рдВрджреЗрд╢, рд╕реЙрдХреЗрдЯ, рдФрд░ рдзреНрд╡рдЬ:

рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ zmq_msg_recv(3) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 zmq_msg_recv(&reply, request, 0); printf("Received: hello - %d\n", count); zmq_msg_close(&reply); 

zmq_msg_recv(3) рд╕реЙрдХреЗрдЯ рд╕реЗ рд╕рдВрджреЗрд╢ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ socket рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рдФрд░ message рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред

 int zmq_msg_recv (zmq_msg_t *msg, void *socket, int flags) 

zmq_msg_recv рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╕рдВрджреЗрд╢, рд╕реЙрдХреЗрдЯ рдФрд░ рдЭрдВрдбреЗред


рд╕реА рдореЗрдВ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛


рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрддрд╛ рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рдПрд░рд▓рдВрдЧ рдореЗрдВ рдкреНрд░рддрд┐ рддрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ, рдЕрдВрдд рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рддрд╛рд░ред C рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреИрд░реЗрдХреНрдЯрд░ рдРрд░реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ '\ 0' рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЕрдВрддред рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЖрдо рд╣реИрдВ рдФрд░ рдХрдИ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрддреА рд╣реИрдВред
рдорд┐рд▓рд░ рдПрдЯ рдЕрд▓ (1995) рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпреВрдирд┐рдХреНрд╕ рдХреА 65 рдкреНрд░рддрд┐рд╢рдд рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрд╛рдЗрдЯреНрд╕ рдЬреИрд╕реЗ рдХрд┐ рдЬреАрд░реЛ рдмрд╛рдЗрдЯ рдпрд╛ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реА рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
ZeroMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЖрдкрдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдВрджреЗрд╢ рдордЬрд╝рдмреВрддреА рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реЛ рддрд╛рдХрд┐ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕реЗ рдкрдврд╝ рд╕рдХреЗрдВред ZeroMQ рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрдХрд╛рд░ рдЬрд╛рдирддрд╛ рд╣реИред
рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдорд╛рдорд▓рд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирд▓ рдмрд╛рдЗрдЯ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддреЛ рдЖрдкрдХреЛ рдЕрдЬреАрдм рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдВрдЧреЗред
рдЖрдк рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рджреБрдирд┐рдпрд╛, рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде, рдЬреИрд╕реЗ:

 zmq_msg_init_data_(&request, "world", 6, NULL, NULL); 

рд▓реЗрдХрд┐рди рдПрд░реНрд▓рд╛рдВрдЧ рдореЗрдВ рдЖрдк рдПрдХ рд╣реА рд╕рдВрджреЗрд╢ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреЗрдЬреЗрдВрдЧреЗ:

 erlzmq:send(Request, <<"world">>) 

рдорд╛рди рд▓реАрдЬрд┐рдП, C рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣рдорд╛рд░рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ, ZlMQ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ Erlang рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╕реЗрд╡рд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП world рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрд░рд▓рд╛рдВрдЧ world рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╣рдо рдПрдХ рдЕрд╢рдХреНрдд рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ [119,111,114,108,100,0] рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд [119,111,114,108,100,0] рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рд╡рд╛рдВрдЫрд┐рдд рд▓рд╛рдЗрди рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╡рд╛рд▓реА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реА, рдпреЗ ASCII рдХреЛрдб рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрдм рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред
рдЬреАрд░реЛрдПрдордХреНрдпреВ рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ рд▓рдВрдмрд╛рдИ рдореЗрдВ рддрдп рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯ рдХреЗ рдмрд┐рдирд╛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, ZeroMQ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХрдИ рдмрд╛рдЗрдЯреНрд╕ (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реНрд╡рдпрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ), рд╕рд╛рде рд╣реА рд▓рдВрдмрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



ZeroMQ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛


рдпрд╣ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдЖрдк ZeroMQ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрд╡рд╛рдВрдЫрд┐рдд рдЖрд╢реНрдЪрд░реНрдп рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ZeroMQ 2.x рдФрд░ ZeroMQ 3.x рдХреЗ рдмреАрдЪ рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛; рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк ZeroMQ рдХрд╛ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЕрдкреНрд░рдЪрд▓рд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред

 #include <stdio.h> #include "zmq.h" int main (int argc, char const *argv[]) { int major, minor, patch; zmq_version(&major, &minor, &patch); printf("Installed ZeroMQ version: %d.%d.%d\n", major, minor, patch); return 0; } 


рд╕рд╛рд░рд╛рдВрд╢


рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ ZeroMQ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп рднреА рд╣реИред рд╣рдордиреЗ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдХреИрд╕реЗ ZeroMQ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдкреИрдЯрд░реНрди рдХреЗ рдкрд╣рд▓реЗ (рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓рд╛ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдРрдк рднреА рд▓рд┐рдЦрд╛ред

рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/In198578/


All Articles