Java Network Programming - TCP/IP Socket Programming

Learn how to write powerful network applications.

4.64 (637 reviews)
Udemy
platform
English
language
Other
category
instructor
5,139
students
3.5 hours
content
Sep 2016
last update
$59.99
regular price

What you will learn

Understand core concepts of network communication

Become familiar with basics of networking: internet architecture, IP addresses, TCP connections, ports.

Learn how to create java threads and how to use java IO

Learn the basics of Java sockets programming: creation and usage of sockets;

Know how to develop Client/Server TCP and UDP applications

Learn how to transfer data between server/client applications running on different machines on the network.

Code applications like: Port Scanner, Browse the Internet, Web Scraping, Get network interface properties, Validate IP Addresses, Ping a remote host

Develop more complex network applications: File Transfer Application, Small Web Server, Send Emails

Description

Update April 17, 2017: Two students asked me for subtitles. I removed the auto-generated subtitles and I added right subtitles for every lesson. Also, sound quality has been improved for some lessons. Thanks for your suggestion! Now, every student can follow this course more easily.

Update September 17, 2016: Some of my students asked me for a chat application. So
I created the application (GUI included) and I added it in chapter 9. 
Now, you can download the application, run it and view the source code. Enjoy!

Update August 4, 2016: Added: quizzes for learning reinforcement.

---------------------------------------------------------------

Student Testimonials!

★★★★★

The best course ever on udemy , it teaches student not only the how to build network application but also discuss all programming topics like streams , thread that involved on building network applications ,the teacher explains while he is coding every step in details , and explain why he prefered this method over that method . Mr. Catalin provides detail answers for any question in quick time . Take this course and you will master building network applications

Rashed

★★★★★

Professional and up to the point. It tells the beginners every single step about Java Network Programming which is very nice. It makes the difficult things look easy.

Sobhan N.

★★★★★

Excelente curso, esta muy bien explicado y la sintaxys del codigo es muy clara, solo me gustaria ver streaming de audio en tiempo real.

Juan


Course Description

With over 45 videos this online Java training course is designed to provide a solid foundation in Java network programming and network communication.

---------------------------------------------------------------

Learn something new

Network programming is one field which everybody uses but is still considered an advanced topic.

---------------------------------------------------------------

Open Source Code

All source code shown in this course is also available for download. Students can create their own projects using the downloaded java files.

---------------------------------------------------------------

Combine theory with practice!

Each chapter has an intro video to cover basic theory needed to understand the rest of the material covered.

In the first chapter you will learn the concept of network communication from the very basic fundamental level that needs to be understood by everyone.

Two other chapters are included in this course for those programmer who haven’t worked yet with java threads or java IO. These two are very important topics when you want to build a network application and I want to ensure that all students have the basics before we start to code Client – Server applications.

In the Socket (Java Socket programming) section you will start to write simple TCP servers or TCP clients. Also, you will learn how to create a multi-user or a multithreaded server and we are going to test each written application. We will connect multiple TCP clients to a multithreaded server and we will observe the TCP server behavior and how it makes to respond to multiple clients at the same time. 

In this chapter I will cover some other important network programming topics:

  • Scan a remote host for open ports

  • Get network interface hardware information

  • Validate an IP address in different ways

  • Ping a remote host address using java code

  • Browse internet using java code.

  • Web scrapping – get what data you want from a web page

UDP chapter focus on the difference between the most used Transport Layer protocols: TCP and UDP. We will write together an UDP server and an UDP client. The interesting part of this chapter comes after we will run the code. The next chapters present some useful applications:

  • Send an email

  • Transfer files between a server and a client using TCP sockets

  • A small web browser.

The code is explained in details, line by line. All the needed theory is presented in the application intro and we will test each application after the source code is explained.


So let’s start the interesting journey now! 

Cheers, 

Catalin Baba



Content

Introduction To Networking

Introduction
Networking Fundamentals
TCP/IP Model
TCP/IP Communication
Internet Protocol (IP)
Loopback Interface

Java Threads

Thread Intro
Networking and Threads
Implementing Threads in Java
Create the first thread
Run Multiple Threads Concurrently
Sleep a Thread
Runnable
Threads Quiz

I/O Streams

Java I/O Intro
FileInputStream
FileOutputStream
DataStream
Character Streams part I
Character Streams part II
Character Streams part III
BufferedStream
PrintStream
System.in
Streams Quiz

Java Sockets

Java Socket Programming Intro
Local Port Scanner
TCP Server
Multi-user Server
Multithreaded Server
InetAddress class
TCP Client
Remote Port Scanner
Ping
Validate IP addresses
NetworkInterface class
URL and Web Scraping
Java Sockets Quiz

Java UDP programming

UDP Intro
UDP Client
UDP Server
UDP Timeout
Java UDP Quiz

Send Emails using SMTP protocol

SMTP Protocol
Application
Install a SMTP server
Run the Application

File Transfer Application

What we are going to build?
Application - Server Side
Application - Client Side
Run the Application

Basic Web Server Application

HTTP overview
Application

GUI Chat Application

GUI Chat Application Source Code

Screenshots

Java Network Programming - TCP/IP Socket Programming - Screenshot_01Java Network Programming - TCP/IP Socket Programming - Screenshot_02Java Network Programming - TCP/IP Socket Programming - Screenshot_03Java Network Programming - TCP/IP Socket Programming - Screenshot_04

Reviews

Ammar
June 6, 2023
very good course, sometimes he doesn't talk really clear in terms of english words & explaining the topic itself (not when he skips topics that are complicated) and sometimes he goes fast in topics and there are couple of typos here and there that I captured for improvement, but overall a very well made course with great info, loving it
Joshua
October 29, 2021
Good course, I learned a lot. No fault of the teacher, but I had trouble understanding his accent at times.
Daniela
June 20, 2021
Precise and with many useful information for those who work in Telecom area and develop client-server applications.
Michael
February 23, 2021
The instructor knows his content well and delivery is great. - 0.5 star because a bit more content would be nice, or a much deeper level of how things really work under the hood would be great.
L
December 3, 2020
The best detailed description in the video. Appreciate lecture's great effort !!! Thank you very much !!!
Ryan
June 17, 2017
For anyone that already knows java but does not have experience with networking, this course is really informative.
Rashed
May 5, 2017
the best course ever on udemy , it teaches student not only the how to build network application but also discuss all programming topics like streams , thread that involved on building network applications ,the teacher explains while he is coding every step in details , and explain why he prefered this method over that method . Mr. Catalin provides detail answers for any question in quick time . take this course and you will master building network applications
Pierre
April 4, 2017
Truly great teacher. He breaks everything down and provides tons of examples that permit the student to get a truly hands-on experience. Great videos.
Mario
March 30, 2017
The material presented is great, but at times is extremely difficult to understand the instructor and sadly the captions are sometimes incorrect.
Mthuthuzeli
January 22, 2017
It is very informative, i am enjoying very much. Very informative on java io and networks and threads.
Juan
November 2, 2016
Excelente curso, esta muy bien explicado y la sintaxys del codigo es muy clara, solo me gustaria ver streaming de audio en tiempo real.
Mihai
October 31, 2016
This is a great course to introduce yourself into the world of Java and network programming and it is definetely an amazing resource for any network engineer looking to automate various tasks inside a network. Highly recommended!
Arik
October 3, 2016
i didn't give it a 5 because there are no subtitles and sometimes it is hard to understand the instructor because of his accent. doens't explain fully some of the things he does. especially in the the http application video
Fatih
September 6, 2016
Basic networking content is insufficient. You can find more information in wikipedia. I know, It is not a only networking course but understanding networking is more important part than design part.
Sobhan
August 26, 2016
Professional and up to the point. It tells the beginners every single step about Java Network Programming which is very nice. It makes the difficult things look easy.

Charts

Price

Java Network Programming - TCP/IP Socket Programming - Price chart

Rating

Java Network Programming - TCP/IP Socket Programming - Ratings chart

Enrollment distribution

Java Network Programming - TCP/IP Socket Programming - Distribution chart
871138
udemy ID
6/7/2016
course created date
8/23/2019
course indexed date
Bot
course submited by