Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 119577
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T03:40:30+00:00 2026-05-11T03:40:30+00:00

I have client and server programs which now communicate via TCP. I’m trying out

  • 0

I have client and server programs which now communicate via TCP. I’m trying out using POSIX message queues instead (in cases where the client and server are on the same machine, of course). My hope is that it will improve performance (specifically via reduced latency).

I’ve worked out most of it, but am not sure about one thing: how to establish the ‘connection.’ The server accepts connections from multiple clients concurrently, so I’m tempted to emulate the TCP connection establish process like so:

  1. Server opens a queue with a well-known name and reads from it continuously (it can use select(2) as with TCP).
  2. Client opens three queues: two with arbitrary names (including some uniqueness such as PID to avoid collisions), and one with the well-known name used by the server.
  3. Client posts a ‘connect’ message to the server’s queue, including the client’s queue names (one is designated for client-to-server traffic and the other for the converse).
  4. Server opens the queues named in the client’s connect message and begins to read (select) from the client-to-server one.
  5. Client closes the server queue with the well-known name. Two-way communication proceeds using the two queues named by the client (one for each direction).

You can probably see how this scheme is similar to the common TCP method, and that’s no accident. However, I’d like to know:

  1. Can you think of a better way to do it?
  2. Do you see any potential problems with my method?
  3. Do you have any other thoughts, including about the likelihood that using message queues instead of TCP on the same machine will actually improve performance (latency)?

Keep in mind that I haven’t used POSIX message queues before (I did use IBM WebSphere MQ a while back, but that’s rather different). The platform is Linux.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T03:40:31+00:00Added an answer on May 11, 2026 at 3:40 am

    I ended up implementing it basically as I described, with a few enhancements:

    • In step 2, I used GUIDs for the queue names instead of incorporating the client’s PID.
    • In step 4, I added the sending of an ‘accept’ message from server to client.
    • When either side wishes to end communication, it sends a ‘disconnect’ message.

    The handshaking is simpler than TCP, but seems sufficient.

    As for latency: it’s much better. Roughly 75% less latency using POSIX message queues instead of TCP on the same machine. My messages are on the order of 100 bytes each.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 118k
  • Answers 118k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Why not install a Linux virtual machine on your laptop,… May 11, 2026 at 11:37 pm
  • Editorial Team
    Editorial Team added an answer So you want one implementation for some 4 classes, and… May 11, 2026 at 11:37 pm
  • Editorial Team
    Editorial Team added an answer I went with method B because: 1. The plist file… May 11, 2026 at 11:37 pm

Related Questions

I have client and server programs which now communicate via TCP. I'm trying out
I have been asking a lot of questions about a project I have been
Is there any way by which i can find out free port on the
I have a classic client/server (fat client and database) program written in Delphi 2006.
From what I understand there is no SMTP server in IIS on Vista. I

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.