Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Java Network Programming: Recipes for Building Web Services
Rating: 4.1 out of 5(21 ratings)
218 students

Java Network Programming: Recipes for Building Web Services

Master the advanced concepts to get hands-on with Networking Web Services in Java and secure network applications
Last updated 3/2019
English

What you'll learn

  • Learn applications of networking programming in Java.
  • Explore protocols that underlie the Internet, such as TCP/IP and UDP/IP.
  • Use channels and buffers to enhance communication between applications
  • Access network services and develop client/server applications
  • Master the Java NIO package to perform multitasking
  • Explore how the WebSocket structure is supported by a servlet
  • Implement WebSocket functionality end-to-end in a client and server application
  • Run HTTP client programming using JDK9 in asynchronous mode
  • Work with protocols such as SOAP and REST and send JSON data to the client.
  • Create server applications with symmetric and asymmetric encryptions.

Course content

2 sections55 lectures9h 22m total length
  • The Course Overview5:39

    This video will give you an overview about the course.

  • Introduction4:13

    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

  • Review of Network Programming10:50

    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

  • Network Layers11:51

    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

  • Java API to Network Programming3:24

    In this video, we will learn something about Java’s support for common network protocols.

       •  Discuss the JDK libraries that support network programming

  • Using Domain Name Servers5:55

    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

  • UDP Echo Server18:30

    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

  • TCP Protocol12:52

    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

  • Creating Simple TCP Echo Server3:12

    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

  • Multi-thread Echo Server6:02

    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

  • Scalability of Network Programs9:49

    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

  • Handling Connections with Thread Pools7:50

    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

  • Filtering Clients9:03

    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

  • Advanced Filtering Clients10:02

    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

  • Client Filtering Using Name5:06

    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

  • Writing an IRC bot23:34

    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

  • Sending Mail9:48

    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

  • Receiving Mail6:56

    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

  • Using FTP12:17

    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

  • Using SSH9:43

    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

  • Java NIO Structure12:06

    In this video, we will have a look at the structure of Java NIO.

       •  Explore the concept of NIO, Buffers, Channels, and Selectors

  • Java NIO Buffers5:22

    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

  • Java NIO Scatter and Gather16:50

    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

  • Java NIO Transfer2:53

    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

  • Java NIO Selector13:40

    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

  • Java NIO Socket12:50

    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

  • Course Summary2:39

    In this video, we will talk about the summary of the entire course.

       •  Get a gist of the entire course in a nutshell

Requirements

  • Prior working experience of Java Programming is expected.
  • Basic knowledge of Network Programming is beneficial but not necessary.

Description

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.

Who this course is for:

  • Experienced Java developers who are interested in learning how to solve issues related to network programming in Java.
  • Additionally, Network Programmers, System/Network Administrators, and Web Application Developers will also benefit from the course.