Re: Java Socket Constructor
- From: "John W. Kennedy" <jwkenne@xxxxxxxxxxxxx>
- Date: Sat, 02 Feb 2008 20:08:43 -0500
Lew wrote:
John W. Kennedy wrote:And FTP Active Mode dissappears in a puff of logic.
I think we're running into a layer issue here. As I understand FTP, the "server" from the app standpoint is the one to whom requests are made. Active and passive FTP are lower layer matters dealing with the network or transport, no?
FTP runs on two sessions, a command session and a data session. The command session is initiated by the client; that part is easy. In classic FTP, the data session is then initiated by the FTP server. Because this nowadays typically causes firewall problems at the client, a new "passive mode" FTP has been defined, in which, instead of initiating the data session, the server requests the client, via the command session, to initiate it, "active mode" being a retronym for the original design. Passive mode must be requested explicitly, since not all software supports it.
I don't know why they didn't just use a single session with a side channel implemented in the data format in the first place, unless it was simply to squeeze out the last drop of bandwidth.
So it may be technically correct to say, in describing how to program for TCP, that it is always the client, by definition, that initiates the session. But when explaining to someone who has just asked, "What is TCP?", to whom "the server" means "the big box in the air-conditioned room" and "the client" means "my PC", it is a pragmatic truth that "TCP sessions may initiate with either the client or the server". To tell him, "A TCP session always originates with the client," will only make him believe a dangerous falsehood, and explaining the whole situation runs the risk of making him go all Blanche DuBois on you ("My head is swimming!"), at least in my experience.
If he needs to know more later, then we can say, "When setting up a TCP session, the side that initiates it is always called the 'client', no matter what happens after the session is set up." Anyone who needs to know that will readily understand it.
--
John W. Kennedy
"Cricket is a game where you have 2 sides - one out in the field and the other in, off the field. Each man in the side that is in, goes out, and when he is out, comes in, and the next man goes out until he is out, then he comes in. When the side that is in, goes out, they go in to get the others which are in, out. Sometimes you get men still in, but not out, but they are out. They go in when the side goes out, to be put in, but not out. When both sides have been in and out, even those that are not out, but also not in, that is the end of the game."
-- Anon.
--
John W. Kennedy
"There are those who argue that everything breaks even in this old dump of a world of ours. I suppose these ginks who argue that way hold that because the rich man gets ice in the summer and the poor man gets it in the winter things are breaking even for both. Maybe so, but I'll swear I can't see it that way."
-- The last words of Bat Masterson
.
- Follow-Ups:
- Re: Java Socket Constructor
- From: Lasse Reichstein Nielsen
- Re: Java Socket Constructor
- References:
- Re: Java Socket Constructor
- From: EJP
- Re: Java Socket Constructor
- From: Lew
- Re: Java Socket Constructor
- From: John W. Kennedy
- Re: Java Socket Constructor
- From: Lew
- Re: Java Socket Constructor
- Prev by Date: Re: IoC, DI, and a mess...
- Next by Date: Re: Help with SSLSocket and friends
- Previous by thread: Re: Java Socket Constructor
- Next by thread: Re: Java Socket Constructor
- Index(es):
Relevant Pages
|