2012-10-29 4 views
7

Secondo questo sito, http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html si dice questo:Knock Knock Server

Server: "Knock Knock!"

Cliente: "Chi c'è?"

Server: "Dexter".

Cliente: "Dexter chi?"

Server: "Sale Dexter con rami di agrifoglio".

Cliente: "Groan".

Ho pensato che se il server sta ascoltando su una porta che sta aspettando un colpo, quindi il cliente busserebbe e il server direbbe chi c'è. Ho controllato anche altri siti web e ho visto le stesse risposte client/server.

Qualcuno può spiegare perché questo non è il caso?

+3

Il cliente non dovrebbe iniziare a bussare? Penso che il protocollo sia indietro ;-) –

+1

@Joachim Penso che questo fosse il punto della domanda. Sono d'accordo che l'esempio sembra indietro e quindi confonde. – DNA

+0

Bene, sembra che non abbia letto abbastanza la domanda: dal punto di vista del protocollo * ha senso che il server sia il primo a comunicare, come spesso accade (HTTP è gentile, di un'eccezione qui) in ordine per dire al cliente a quale server (versione software, capacità, ...) il client è connesso. Da un punto di vista * scherzo * il cliente (vale a dire l'uno "che si connette") è certamente destinato a iniziare la conversazione knock-knock. –

risposta

12

Che tutorial dice:

Quando si ottiene con successo una connessione tra il client e il server, si vedrà il seguente testo visualizzato sullo schermo:

Server: Knock! Knock! 

Quindi è in realtà la client che avvia il protocollo (in termini di rete) ma il server che avvia lo scherzo (in termini di conversazione). Che sono d'accordo è piuttosto confuso.

Potrebbe essere d'aiuto se si pensa ad esso come un server di Joke - per ottenere uno scherzo, devi chiederne uno! Se fosse il contrario, avresti un server che ascolta solo barzellette, il che non è così utile (a meno che tu non abbia assolutamente nessun amico).

Problemi correlati