Skip to content

hilalsidhic/Java-Network-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Networking Programming in Java

This repository documents my learning journey in network programming with Java.
It contains simple yet practical implementations of TCP, UDP, and other network protocols.
The goal is to build a strong foundation in how network communication works at a low level.


πŸ“‚ Project Structure

networking-programming/
β”‚
β”œβ”€β”€ tcp/
β”‚   β”œβ”€β”€ EchoServer.java
β”‚   β”œβ”€β”€ EchoClient.java
β”‚   └── README.md
β”‚
β”œβ”€β”€ udp/
β”‚   β”œβ”€β”€ UDPEchoServer.java
β”‚   β”œβ”€β”€ UDPEchoClient.java
β”‚   └── README.md
β”‚
β”œβ”€β”€ http/        # (upcoming)
β”œβ”€β”€ websocket/   # (upcoming)
└── README.md

βœ… Completed Projects

1. TCP Echo Server & Client

  • Description:
    A simple TCP server that listens for client connections and echoes back any messages sent.
    Demonstrates connection-oriented communication using ServerSocket and Socket.

  • How to run:

    javac tcp/EchoServer.java tcp/EchoClient.java
    java tcp.EchoServer
    java tcp.EchoClient
  • Quick Test (via Telnet):

    telnet localhost 1234

2. UDP Echo Server & Client

  • Description:
    A simple UDP server that listens for datagrams and echoes them back to the sender.
    Demonstrates connectionless communication using DatagramSocket.

  • How to run:

    javac udp/UDPEchoServer.java udp/UDPEchoClient.java
    java udp.UDPEchoServer
    java udp.UDPEchoClient

πŸ”œ Upcoming Projects

  • Multi-client TCP Chat Server (threaded server, multiple clients can chat simultaneously).
  • Basic HTTP Server (serving static HTML files).
  • HTTP/1.1 Features (headers, persistent connections).
  • WebSockets (real-time communication over HTTP upgrade).

πŸ“– Resources


🎯 Goal

By the end of this repository, I aim to:

  • Understand TCP vs UDP deeply.
  • Gain hands-on experience with Java Socket APIs.
  • Explore HTTP internals and WebSockets.
  • Simulate how real-world servers (Nginx, Tomcat, Node.js) handle requests.

About

Socket Programming projects using java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages