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 6236923
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T10:56:02+00:00 2026-05-24T10:56:02+00:00

I have a client/server application that I made using sockets. The thing is, when

  • 0

I have a client/server application that I made using sockets.
The thing is, when I send a command requesting some information and wait for a reply I block untill that reply comes. This makes it harder to implement bidirecional requesting/responde.
Let me explain using one example:
The client can list files in a directory of the server, so I do someting like that in code:

Client code:
1- Send request command: LS /
2- Blocks waiting for the LS responde.
3- Get the file list.

The reason why I did that is that the Client may have to transfer a file, so I do:
1- Send request for transfering a file.
2- Blocks on read() waiting to see if the server accepts
3- Only if it does, send the file.

So it was fine untill I had to add the server the ability to request anything.
In my code, the client can request anything and get blocked waiting for a response.
The server might then send any request command that will make no sense for the responde the client is waiting for. This would screw the conversation.

One resolution I tought is to never block for a response.
I would send a request command, and then come back to wait for ANY request or response from the server, if a response arrives then I would send the file.
So the thing is will I have to add like an ID in each request/response pair to know which response is for which request?

PS: Im pretty lost in how to design a network conversation between hosts and have never read a book about desing patterns for network applications.

PS2: sry my bad english 😉

  • 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. Editorial Team
    Editorial Team
    2026-05-24T10:56:03+00:00Added an answer on May 24, 2026 at 10:56 am

    The thing you are looking for is an application-level protocol between the server and the clients.

    For your particular case the simplest way is for the server to say upfront what it is going to send next. Say, put a message type byte in front of the message. Say 0 means request, 1 means response, etc. Stick that into a switch statement and you are done.

    It’s a good idea to include message length in that header too, so the receiving code knows how many bytes to fetch from the network to get a complete message.

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

Sidebar

Related Questions

We have a client application that needs to send messages to a server for
I have a .NET client application that needs to communicate with a server using
I have a client/server application that communicates with .Net remoting. I need my clients
I have a client server application that sends XML over TCP/IP from client to
I have a client-server application that uses .net remoting. The clients are in a
i have a server - client application that runs on java 1.3; i want
I have a client server based windows forms application that needs an administrator only
I have an application that runs on a client's server built on a SQL
Hi I have an application that operations like this.. Client <----> Server <----> Monitor
I have a client / server application made with C#. Its working fine when

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.