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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T18:04:14+00:00 2026-06-06T18:04:14+00:00

Is it possible to simultaneously read and write from a socket? I’ve a thread

  • 0

Is it possible to simultaneously read and write from a socket? I’ve a thread which continuously reads a socket. Since only one thread is reading from socket, read operation is thread safe. Now i’ve many threads (say 100) which write into socket. Hence it is obvious that i’ve to make write operation thread safe by doing something like this,

package com.mysocketapp.socketmanagement;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class SocketManager {

    private Socket socket = null;

    private InputStream inputStream = null;

    private OutputStream outputStream = null;

    public SocketManager() {
        socket = new Socket("localhost", 5555);
        //server's running on same machine on port 5555
        inputStream = socket.getInputStream();

        outputStream = socket.getOutputStream();
    }

    public void writeMessage(byte[] message) throws IOException {

        synchronized (SocketManager.class) {

            if (message != null) {
                outputStream.write(message);
            }
        }
    }

    public byte[] readMessage() throws IOException {
        byte[] message = new byte[10]; //messages are of fixed size 10 bytes
        inputStream.read(message);
    }
}

Now I have a thread constantly calling readMessage() function (in an while loop). As far as i know if there is no message on the socket to be read the statement inputStream.read(message) will wait for a message.

I want to know whether it is safe to exceute outputStream.write(message); while inputStream.read(message); is in execution

  • 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-06-06T18:04:15+00:00Added an answer on June 6, 2026 at 6:04 pm

    Yes, a socket is bidirectional and enable full duplex communication, there is no problem in doing (on different threads) simultaneous read and write.

    And there is no problem in having multiple writing threads. You could synchronize on the socket instance instead of the SocketManager class.

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

Sidebar

Related Questions

Is it possible to serve a read-only pdf file to multiple computers in a
Possible Duplicate: Malloc thread-safe? I heard that glibc malloc() was not thread safe, since
I was wondering if it was possible to capture from both cameras simultaneously using
Is it possible to achieve distributed reads from HDSF cluster using an HDFS client
I'm trying to simultaneously read and write H.264 mov file written by AVAssetWriter. I
I would like to know if it is possible to read a file simultaneously
It is possible to execute the following code from multiple threads simultaneously. this._sequencer.Completed +=
From what I have been reading on The Open Group website on fcntl ,
I have some 2TB read only (no writing once created) files on a RAID
Is to possible to submit two forms simultaneously with either javascript or a submit

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.