
This video will give you an overview about the course.
In this video, we will go through an overview about this course.
• Get a lower level description of the course
• Understand the step-wise approach about the course
In this video, will learn about the basics of Network programming in general.
• Create a sample program that connects to the PACKT home page and dumps the HTML to the screen
• Learn how the TCP client that connects to PACKT home page and retrieves the HTML content and dumps it to the screen
In this video, we will have a look at Network Layers and learn something about it.
• Discuss why network layers are needed and are important
• Explore the sever ISO OSI layers and how they match TCP/IP. Also learn a little bit about routing
• Create a Program that sends UDP message from one terminal window to the other
In this video, we will learn something about Java’s support for common network protocols.
• Discuss the JDK libraries that support network programming
In this video, we will look at how to Resolve host names to IP addresses.
• Show how the DNS binding can be altered/configured using the hosts file
• Create a simple application that reads names from the standard input and then prints the IP address of the name to the output
• Explore the application uses DNS to resolve the name to IP address
In this video, we will look at how to create a UDP echo server.
• Get acquainted with the UDP/IP packet protocol
• Explore what it is good for, when it is better to use connectionless protocol than a connected protocol
In this video, we will get an overview on TCP protocol.
• Learn how the connection works
• Get some high level ideas so that we get an understanding what it is
In this video, will learn how to create a simple TCP echo server.
• Learn the process how a server handles a connection
• Understand that it should listen on a port, accept the connection it gets and then it has to serve it
• Create a TCP echo server that can handle one connection and echoes each character that is sent to it
In this video, we will have a look at how multi-thread TCP echo server works.
• Understand that the server should handle multiple connections in different threads or by other means in some way concurrent
• Understand that the server should handle multiple connections in different threads or by other means in some way concurrent
• Test the application by starting two different telnet client and connecting to the server and see to it that each of the two is served
In this video, we will learn about scalability of network programs.
• Learn about the threading model, and concurrent programming in Java
• Learn what are processes, threads and fibers and why it is important to make concurrent programming as simple as possible
In this video, we will look at how to handle threads with thread pools.
• Show a sample application that connects to the echo server and created load on it
• Execute it using the previous server
• Modify the code so that it uses thread pool and notice the difference in performance
In this video, we will look at how filtering clients work.
• Learn how to limit the accepted clients to a certain IP range
• Learn how to create a black-list and a white-list of client IP addresses
• Modify the application so that it rejects connections if the client is coming from a certain IP range
In this video, we will look at how Advanced filtering clients work.
• Parse IP addresses using regex
• Extend the black-list, whitelist with wild card
• Show how an IP address can be parsed using regular expression
In this video, we will look at how clients filtering using name work.
• Resolve the connecting IP to name and filter the client using general regular expressions based on the name
• Extend the black-list, whitelist with names containing regular expression
In this video, we will look at the working of IRC bot.
• Creating an IRC bot using pircbotx
• Create a simple IRC bot that says hello when someone greets it
• Log into a server using the bot and also using Lime Chat client and then greet the bot and see if the bot answers to us
In this video, we will look at how to send mail using Network Programming.
• Send an e-mail using SMTP and also JavaMail protocol
• Create a sample program that connects to an SMTP server and sends a simple mail to the address of a test account
• Open the Gmail account and check if the mail has arrived
In this video, we will look at how to get mail using network programming.
• Learn how to receive mail using POP3 protocol
• Create sample program that downloads the mail from the demo Gmail account
In this video, we will look at how to use FTP from Java.
• Learn the basics of handling FTP
• Create a sample code that uploads a file to an FTP server, lists the files on the server
• Download a file from the server
In this video, we will look at how to use SSH from Java.
• Login to a remote server using SSH from Java programmatically
• Create sample application that logs into a server
• Execute a management command and fetch the output from the executed program
In this video, we will have a look at the structure of Java NIO.
• Explore the concept of NIO, Buffers, Channels, and Selectors
In this video, we will learn about Java NIO Buffers.
• Understand what a Buffer is in NIO and how to handle them
• Detail the model of a Buffer
• Create a Sample code that reads from a file using NIO and calls read, flip, and clear
In this video, we will learn about Java NIO scatter and gather.
• Learn how to write to different buffers in one read and how to read from different buffers to a channel in one read
• Learn why it is good and what it can be used for
• Create sample application that reads from a file a fixed size header and body and then writes to a different file a similar structure
In this video, we will learn about JNIO transfers.
• Learn how to transfer data from a file to a channel and the other way around using transferFrom and transferTo
• Create a sample application that copies a file to another
In this video, we will learn about JNIO select.
• Learn how to use NIO select to handle multiple channels in a single thread
• Create sample application that reads from multiple web sites parallel in a single thread and displays on the screen
In this video, we will learn about JNIO socket.
• Understand the details of the SocketChannel and the ServerSocketChannel
• Sample server that creates a server using NIO
In this video, we will talk about the summary of the entire course.
• Get a gist of the entire course in a nutshell
This video provides an overview of the entire course.
In this video, we will discuss what echo servlet is.
Explain the servlet structure, standard and implementations
Create a sample application that handles GET and POST requests and echoes the content of the request back to the client
In this video, we will take a look at how parameters are handles.
Explain how to handle GET and POST parameters
Create code that displays the GET and POST parameters that the client was sending from a form
In this video, we will take look at cookie handling in servlet.
Explain why cookies are needed and how to access and set cookies from the servlet environment
Create sample code that display different message the first time and then it remembers that we have already visited the page based on a cookie
Show how to delete a cookie in the Chrome browser
In this video, we will be creating HTTP server response.
Explain what the most important HTTP headers mean and how to set them
Extend the sample code so that it sends different headers
Show how it alters the behavior of the browser
Explain what the most important HTTP headers mean and how to set them
Explain what the most important HTTP headers mean and how to set them.
Extend the sample code so that it sends different headers
Show how it alters the behavior of the browser
In this video, we will look into servlet filters and authentication.
Explain what is, and how to write servlet filters
Create a sample filter that uses cookies to authenticate the user
Handle a session in a servlet and learn what a session is.
Explain why it is important that anything stored in a session is serializable.
Explain cluster and farm architecture
Sample application that stores user data in the session object
In this video, we will look into servlet lifecycle.
Discuss the total lifecycle of a servlet
Extend the sample application that implements the init and the destroy methods
In this video, we will look into uploading a file.
Explain how to upload a file
Understand what the special issues with file upload are
Create sample application that accepts file upload
In this video, we will look into how to support a webSocket.
Detail the WebSocket structure and what it is good for and how it is supported by a servlet
Create a sample application that lets clients to connect and whatever a client sends to the server via socket it sends it to all the clients
In this video, we will get an intro into HTTP 2.0
Explain the major differences between HTTP/1.1 and 2.0
Explain the problem with TCP slow start
In this video, we will look into the supports of HTTP 2.0
Explain how servlet standard version 4 supports HTTP/2.0
Create an application that sends pre-fetch to the client when it asks for a single resource
In this video, we will look into the debugging servlet applications.
Detail the technical steps how to start a Tomcat server so that it listens on a TCP port and how to connect to it using a debugger
Debug the previously developed sample application using IntelliJ IDE
In this video, we will look into the http client programming in Java.
Understand http client programming using JDK client, synchronous mode
Explain that there are libraries for older versions of Java and that the older version of Java supported only synchronous clients
Create a sample client application that downloads Packt’s web page and dump it to the screen, this time not on pure socket level but rather using the JDK library
In this video, we will look into the asynchronous client.
Understand http client programming using JDK client, asynchronous mode
Modify the previous sample application so that the client is asynchronous
In this video, we will look into the client configuration.
Configure the JDK http client
Configure the client with different parameters
In this video, we will talk about spring web programming.
Focus on the different libraries and what they do and only show how easy it is to write servlet application
Create a sample application that uses SpringBoot
In this video, we will talk about web service programming.
Explain what SOAP and REST services are
Talk about the different REST levels
Extend the previous Spring example so that it is sending JSON to the client
In this video, we will look into the security aspects.
Learn why security is important when we program network application
In this video, we will look into the encryption basics.
Learn what is encryption, history of encryption and the difference between symmetric and asymmetric encrytion, enveloping, and hashing
In this video, we will look into creating keystore.
Learn how Java supports asymmetric encryption and where keys are stored
Create a keystore and how to add keys to it
Using the standard command line create new key pair and add it to a keystore; then list the content of the store
In this video, we will look into the symmetric encryption server.
Create a server application that uses symmetric encryption
Modify the TCP echo server so that it decodes the message that is sent to it and sends back the text using the same encoding but different key
In this video, we will look into the asymmetric encryption server.
Create a server application that uses asymmetric encryption
Modify the TCP echo server so that it decodes the message that is sent to it and sends back the text using the same encoding, but different key pairs using PGP encryption applying the Bouncy Castly library
In this video, we will look into network elements.
Learn the role of the different network elements, especially those of firewalls, proxies and NAT routers
Show how to tunnel through SSH channel and what it means in the network
In this video, we will look into byte order in Java.
Learn why it is important to pay attention to byte order when interfacing external application in a binary protocol
Create a sample code that puts int and long and double values into a byte stream and then saves it to a file
Dump the file with some other tool to see what is inside
In this video, we will be interfacing with other languages.
Learn how and why networking is interoperable with other languages
Create sample code that connects from python to one of the sample servers we have created in an earlier video
In this video, we will be debugging network programs.
Learn how to debug applications that use networking
Debug some of the previous applications and describe the Google Chrome debug tools
Visit another, lower level application and use Wireshark to see the network traffic
Java provides numerous classes that have developed over the years to meet evolving networking needs. These range from a low-level socket and IP-based approaches to those encapsulated in software services. Web services drive networking on the web and have been at the center of modern application architecture. Regardless of language or platform, understanding how web services work is a serious skill. This course explores web services: the concepts, commands, and tools that allow you to communicate and share data between applications.
This comprehensive 2-in-1 course step-by-step practical approach to master the advanced concepts and get hands-on with Networking Web Services in Java Programming to secure network applications through encryption! To begin with, you’ll learn applications of networking programming in Java and explore protocols that underlie the Internet, such as TCP/IP and UDP/IP. You’ll then implement WebSocket functionality end-to-end in a client and server application. Moving further, you’ll work with protocols such as SOAP and REST and send JSON data to the client. Finally, you’ll create server applications with symmetric and asymmetric encryptions and learn network interoperability and interface with other languages.
Towards the end of this course, you'll get hands-on with Networking Web Services in Java Programming to secure network applications through encryption!
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Java Network Programming Recipes, covers building efficient networked programs effectively. This practical tutorial provides a complete introduction to developing network programs with Java. We start with the basics of networking and then explore how Java supports the development of clients/servers. You’ll explore how to use Java’s network class library to rapidly and effortlessly accomplish common networking tasks such as writing multithreaded servers, network scalability, implementing application protocols, and filtering clients and client names. Java NIO packages are examined as well as multitasking, building hands-on NIO buffers, scatter and gather, and transferring data to channels and selectors. By the end of this video tutorial, you will have mastered networking fundamentals (and advanced concepts) in Java to ensure you understand (and are capable of building) networked programs.
The second course, Building Web Services with Java Network Programming, covers developing hands-on networking web services with Java. This course explores web services: the concepts, commands, and tools that allow you to communicate and share data between applications. You will learn how to use HTTP services in synchronous and asynchronous modes by configuring an HTTP client. You will also explore protocols such as SOAP, and REST and shares simple programming tips for writing web services that are as efficient as possible. Plus, you'll learn how to secure your communications across the web with security standards and create key-store and server applications that use symmetric and asymmetric encryption for client and server. By the end of this video tutorial, you will be equipped to handle WebSocket functionality supported by servlets in Java and will have mastered advanced concepts well enough to build web services, ensuring the audience is able to understand and secure network applications through encryption and by interfacing with other languages.
Towards the end of this course, you'll get hands-on with Networking Web Services in Java Programming to secure network applications through encryption!
About the Authors
Peter Verhas is a senior developer and software system architect with more than 30 years' software development experience. He currently works for EPAM as a senior developer, where he is involved in many customer projects and actively participates in the educational activities of the company. Peter writes a technical blog and is committed to open-source software development. He has used Java since 2005 and is also an author at Java Code Geeks.