<< Chapter < Page Chapter >> Page >

The server software is willing to access and deliver files from directories relative to this pseudo-root .

Note that the request is actually made by printing a line of text on the stream that is connected to the server.

Read and display text from the server

Finally as shown in Listing 11 , the program reads lines of text from the input stream and displays them on the standard output device.

Listing 11 - Read and display text from the server.
//Declare a String to read lines into. String line = null;//Loop reading and displaying lines until null// is received. while((line = inputStream.readLine()) != null)System.out.println(line);//Close the socket socket.close();

Output from the simple browser program

In this particular case, the output was as shown in Figure 4 .

Figure 4 - Output from the simple browser program.
<html><head><title>Java4570b</title></head><body><form method='get' action='http://localhost:8080/Java4570b.jsp'><p>Enter a name and press the button</p><p>Name:<input type='text' name='firstName'/></p><input type='submit' value='Submit Name'/><br/><br/>Your session ID and list of names is:<br/>Empty<br/></form></body></html>

A curious result

The requested file was a JSP file consisting of JSP tags embedded in HTML code. Curiously, only the HTML code was returned by the server. (I suppose it is also possible that the JSP tags were returned but were notdisplayed by the program for some reason.)

In any event, I will leave it as an exercise for those students who may be interested to research thematter. As I mentioned earlier:

"Getting the bytes to flow is the easy part. Beyond that, you must do all of the programming to implement an application protocol that isunderstood by both the client and the server . Often that is the more difficult part."

When there are no more lines to be read, a null is received. This causes the client to exit the input loop and to close the socket.

Run the programs

I encourage you to copy the code from Listing 12 , Listing 13 , and Listing 14 . Compile the code and execute it. Experiment with the code,making changes, and observing the results of your changes. Make certain that you can explain why your changes behave as they do.

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Java4660: Sockets
  • File: Java4660.htm
  • Published: 03/02/14
  • Revised: 02/07/16
Disclaimers:

Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.

I also want you to know that, I receive no financial compensation from the Connexions website even if you purchasethe PDF version of the module.

In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.

Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask