Java SE Networking

Print the objectives

Take the exam   Take a beta test

This exam is focused on classes of the java.net, javax.net.ssl, and java.rmi packages.


Prerequisites: for the purpose of this exam we will assume that the examinee has the following non-Java knowledge:
  • Basic knowledge of how TCP/UDP works
  • Basic knowledge of SSL
  • Basic knowledge of networking and the WWW

The Java SE Javadoc contains most of the information you need to study this exam.
  Released  Beta  Frozen  

Sockets

Use the java.net.*.*Socket classes.
 
 

Socket  2 questions

  • Develop and troubleshoot a Socket.
  • Use the methods of the Socket class to change the state of the Socket.
  • List the exceptions thrown by the Socket class.
  • Configure the properties of a Socket programmatically.

Not Covered here: SSLSockets.
3 19 9

ServerSocket  2 questions

  • Develop and troubleshoot a ServerSocket.
  • List and explain the methods of the ServerSocket class.
  • Use the implAccept() method to allow subclasses of ServerSocket to override the accept() method of ServerSocket.
  • List the exceptions thrown by the ServerSocket class.

Not Covered here: SSLServerSockets.
2 14 4

Secure Socket Layer  2 questions

  • Design secure Sockets and ServerSockets using SSLSocket and SSLServerSocket.
  • Specify the package where Secure Socket Layer classes and methods exist (javax.net.ssl).
  • Describe when it would not be appropriate to use SSLSockets/SSLServerSockets.
  • Recommend methodologies that encourages better security.
  • Use the HandshakeCompletedListener to receive notifications about the completion of an SSL Handshake on a given SSL connection.
  • Explain requirements and process of using CipherSuites.
  • Describe the Handshaking mechanism and know when it is used.
  • Compare and contrast SSL server mode and SSL client mode.
5 6 1

DatagramSocket  2 questions

  • Describe the differences between a DatagramSocket and a Socket.
  • Build an application using a DatagramSocket (or MulticastSocket).
  • Retrieve information about a DatagramSocket programmatically.
  • Given a scenario using a DatagramSocket, determine either which exception will be thrown or whether a transmission will be completed successfully.

Not covered here: Security of DatagramSockets.
4 11 1

URIs and URLs

Use the java.net.UR* classes.
 
 

URI & URL  3 questions

  • Describe the differences between a URI and URL.
  • Define URI and URL and list their components.
  • Explain what is meant by a URI being absolute/relative and hierarchical/opaque.
  • Configure a URL programmatically.
  • Use the getAuthority(), getContent(), getFile(), getHost(), getPath(), getPort(), getProtocol(), getQuery(), getRef(), and getUserInfo() methods to get specific parts of a URL or URI.
  • Identify the exception thrown by the URL class given code and/or a scenario.
6 16 19

URLConnection  2 questions

  • Identify the superclass of all classes that represent a communications link between the application and a URL.
  • Use connect() to open a communications link to the resource referenced by the passed URL.
  • Configure a URLConnection programmatically.
  • Retrieve header information for a URLConnection.
  • Set the connection timeout of a URLConnection.

Not covered here: HttpsURLConnection, JarURLConnection.
5 7 5

URLEncoder & URLDecoder  2 questions

  • Use URLEncoder to encode URLs with different encodings.
  • Differentiate between an encoded and decoded URL.
  • Use URLDecoder to decode URLs with different encodings.
  • List which characters are encoded and which characters remain the same using URLEncoder.

4 4 3

Protocol Handlers  1 question

  • Describe what a Protocol Handler does.
  • Explain the requirements and process of using a ProtocolHandler.
  • Identify the three different classes that are used for the Protocol Handler mechanism (URL, URLConnection, URLStreamHandler).
1 5 1

Content Handlers  2 questions

  • Describe the purpose of a ContentHandler.
  • Design a content handler that will have a different MIME-type (e.g. "text/groovy").
2 3 2

Remote Method Invocation  2 questions

  • Define Remote Method Invocation as it applies to Java.
  • Explain the requirements for RMI to be used.
  • Describe DGC (Distributed Garbage Collection).
  • Use the java.rmi.registry.LocateRegistry to obtain a reference to a bootstrap remote object registry on a particular host.

The Java Remote Method Invocation Specification is a very good reference to help you with this part of the exam.
1 36 11

Exam information

  • 30 minutes
  • 20 questions (210)
  • 80% required
  • +3 √
  • - 12  points
  • 15 day delay
  • status: released

Top contributors