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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T12:59:00+00:00 2026-06-06T12:59:00+00:00

Java documentation says that a ServerSocket , x , that is listening on, say,

  • 0

Java documentation says that a ServerSocket, x, that is listening on, say, port 5555 returns a new Socket, y, from its accept() method such that:

  1. the local port of y is set to 5555; and

  2. x continues to listen on port 5555 to accept() new connections.

I have verified that the above is indeed the case.

However, this wikipedia entry on Port has this to say:

This process is known as listening and involves the receipt of a
request on the well-known port and reestablishing one-to-one
server-client communications on another private port, so that other
clients may also contact the well-known service port.

To me, the above wikipedia excerpt tends to make more sense… since from what I’ve read and understood about TCP/IP,

  1. the destination IP address helps deliver the packet to the right host; and

  2. the destination port helps deliver the packet to the right process on the destination host

Thus, the given the documentation and behavior of accept() in Java, I’m wondering how could packet delivery be possibly achieved in case of a multithreaded client attempting to talk to a multithreaded server (by opening two communication channels, one in each thread)? In such a case, how would Java (or, the underlying TCP/IP stack) know which packet belongs to which channel when all packets would have the same destination IP address and port values set?

EDIT: Please see EJP’s response and also Nikolai’s comment below. According to them, the above wikipedia claim was wrong. EJP went ahead and fixed the wikipedia entry.

  • 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-06T12:59:02+00:00Added an answer on June 6, 2026 at 12:59 pm

    The listening socket is special. The kernel delivers to it only those TCP segments that are part of the three-way handshake, which have explicit flags in the header. Once that completes you have an established TCP connection that is identified by a full tuple (src addr, src port, dst addr, dst port).

    Thus there’s no ambiguity inside the network stack between listening and connected socket bound to the same local port.

    It might also help to study the TCP state diagram to get a better mental picture of how all this comes together.

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

Sidebar

Related Questions

Oracle's Http Authentication page from the Java SE 6 documentation says that if you
In java's documentation it says that in the below example, the condition will be
The Java documentation says that it is not possible for two invocations of synchronized
The Documentation on ByteArrayInputStream says : java.io.ByteArrayInputStream.ByteArrayInputStream(byte[] buf) Creates a ByteArrayInputStream so that it
The documentation for java.lang.Double.NaN says that it is A constant holding a Not-a-Number (NaN)
Using JNA, the documentation says: Make your target library available to your Java program.
The JDK documentation for java.lang.String.hashCode() famously says: The hash code for a String object
According to the documentation for getResultSet in java.sql.Statement , it says: Retrieves the current
I need to disable IPv6. For that the java documentation indicates setting jvm property
The Java documentation says: A class implements the Cloneable interface to indicate to the

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.