Java Network Programming - TCP/IP Socket Programming
4.4 (120 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
776 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Java Network Programming - TCP/IP Socket Programming to your Wishlist.

Add to Wishlist

Java Network Programming - TCP/IP Socket Programming

Learn how to write powerful network applications.
Bestselling
4.4 (120 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
776 students enrolled
Created by Mr. Catalin Baba
Last updated 9/2016
English
English
Curiosity Sale
Current price: $10 Original price: $95 Discount: 89% off
30-Day Money-Back Guarantee
Includes:
  • 3.5 hours on-demand video
  • 1 Article
  • 41 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I 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
View Curriculum
Requirements
  • A computer - Windows, Mac or Linux
  • Java Development Kit 7 or Java Development Kit 8
  • Netbeans, Eclipse or any other IDE
  • Basic Java knowledge
  • Basic computer and Internet skills
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 a UDP server and a 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



Who is the target audience?
  • The course is aimed for anyone who wants to learn network programming
  • If you have never written code, this course is probably not for you.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
50 Lectures
03:37:42
+
Introduction To Networking
6 Lectures 18:29

Networking Fundamentals
02:30

TCP/IP Model
05:18

TCP/IP Communication
03:35

Internet Protocol (IP)
01:31

Loopback Interface
00:39
+
Java Threads
7 Lectures 32:56
Thread Intro
02:30

Networking and Threads
00:57

Implementing Threads in Java
03:01

Create the first thread
08:24

Run Multiple Threads Concurrently
05:09

Sleep a Thread
05:14

Runnable
07:41

Threads Quiz
7 questions
+
I/O Streams
10 Lectures 46:42
Java I/O Intro
04:04


FileOutputStream
05:03

DataStream
09:29

Character Streams part I
06:10

Character Streams part II
01:40

Character Streams part III
01:37

BufferedStream
07:53

PrintStream
01:57

System.in
03:35

Streams Quiz
7 questions
+
Java Sockets
12 Lectures 59:15
Java Socket Programming Intro
03:29


TCP Server
05:50

Multi-user Server
03:22

Multithreaded Server
06:40

InetAddress class
03:08

TCP Client
05:18

Remote Port Scanner
04:41

Ping
04:12

Validate IP addresses
03:15

NetworkInterface class
09:13

URL and Web Scraping
06:00

Java Sockets Quiz
6 questions
+
Java UDP programming
4 Lectures 21:15
UDP Intro
03:22

UDP Client
08:07

UDP Server
07:31


Java UDP Quiz
5 questions
+
Send Emails using SMTP protocol
4 Lectures 10:49
SMTP Protocol
04:18

Application
03:52

Install a SMTP server
00:54

Run the Application
01:45
+
File Transfer Application
4 Lectures 14:35
+
Simple Web Server Application
2 Lectures 12:11
HTTP overview
05:16

Application
06:55
+
GUI Chat Application
1 Lecture 01:30
GUI Chat Application Source Code
01:30
About the Instructor
Mr. Catalin Baba
4.4 Average rating
120 Reviews
776 Students
1 Course
Software engineer

Hi! My name is Catalin Baba.

I have a degree in Electrical Engineering from University Politehnica of Bucharest, Romania.

I have been working as Automation Software Engineer for more than 6 years.

During this time I have created programs to automate testing for Avaya L3

switches. I have also manually tested different Nortel/Avaya OS`s and I have

worked with many network protocols like: STP, RSTP, MSTP, SNMP, RIP, OSPF,

IPV4, & IPV6, security features for L2/L3, Avaya Network Virtualization.

I have gained experience in network communication field and also in software

development.

I started to learn java 10 years ago and since then I have created many java

applications like networks applications, GUI applications or programs used to

automate my daily tasks.

Some weeks ago I decided to gather my experience in networking and programing

and create a Java network programming course. It was a new challenge for me, and after long hours of research, recording and editing I have successfully created a network programming course for students and also for programmers.