
Discover the basics of networking, key terminologies, and how communication happens; learn network programming in Go, build a DCP client and server, send data and files, and JSON serialization.
Classify networks by geography, connectivity, administration, and architecture. Explore topologies like bus, ring, star, and mesh, plus PAN, LAN, MAN, WAN, the internet, and IP addresses.
Explore LAN types, focusing on Ethernet as a local network protocol that standardizes device communication and operates on the physical layer with copper and speeds from 10 Mbps to gigabit.
Explain the OSI model and its mapping to the TCP/IP model, showing how layering from application to physical enables communication, encryption, bit-ASCII conversions, and protocol roles in messaging and networking.
Explore network entities and terminologies, including IP addresses, public versus private IPs, MAC addresses, and gateways within local networks. Compare a connection-oriented TCP-like model with the connectionless UDP model.
Explore the net package in golang, a standard library for portable network I/O, including IP, UDP, and domain name resolution. Dial and listen to establish connections.
Convert a string input to a net.IP address in Go, validate command line arguments, and print both the IP value and its string form.
Learn to resolve hostnames to IP addresses using Go's net package by inputting a hostname like google.com and retrieving the server's IP address.
Map services to ports with a lookup function by specifying a network type and a service like FTB, retrieve port numbers (FTB: 21; GDP: 442), and print them.
Learn how sockets provide the interface between a client and server, combining an IP address and port to route data, as a browser connects to Google.
Explore how the HTTP protocol works as an application layer, using a client–server request–response model. Examine request methods like GET and PUT, status codes, headers, and the message body.
Create a tcp connection to a web address, craft an http/1.0 request header, and write it to the connection. Then read the response, print the status and header for inspection.
Learn to use the net package to issue http requests, inspect responses and headers, and understand stateless, connectionless exchanges, status codes, and head requests.
Learn to create an HTTP client, send GET requests to a URL, and handle responses and status checks to streamline request workflows.
Build and run a DCP client and server on the same machine, dial the server address over sockets using an IP and port, and handle connection success or failure.
Learn to set up a Go TCP server by using the local IP and a listening port, accept incoming connections, and obtain a connection object to communicate with the client.
Establish a client–server connection in Golang by retrieving server IP and client IP from the remote address and running server and client to verify connectivity, noting Windows firewall prompts.
Capture user input via a buffer and standard input, convert the message to bytes, and send it over a connection from client to server for printing.
Read data from a network connection with a connection reader, print the client message on the server, and demonstrate a simple text message exchange using end-of-message markers.
Explore data serialization to send files over a Go client–server setup, including reading a file, obtaining its absolute path, and transmitting contents to the server for writing.
Learn how to read a file in golang by opening the file, handling errors, and extracting file name, size, and content using a structured approach.
Populate a file struct with name, size, and content, then serialize and send it with a gob encoder over the connection.
Decode incoming data on the server with the decoder to fill a matching struct, then create a file and write the decoded byte array to reproduce the content.
Run the Go server and client to demonstrate sending a file over the network, verify the server IP and the received file, and explore alternative transfer methods for future lessons.
Learn how to define a Go struct for a student, populate fields, marshal to JSON, and store it in a file for serialized data management.
Learn to marshal a Go object to json by creating a file, using a json encoder, writing with a key, handling errors, and closing the file.
Learn to unmarshal json into a go struct by opening a file, creating a json decoder, reading the file, and decoding into a reference, then verifying with a print.
Learn to marshal and send a JSON object from client to server in Go using json.Encoder and json.Decoder, with a defined struct and populated fields.
Decode data from an incoming connection using a new decoder, populate an empty student instance, and print the decoded fields on the server to verify network unmarshalling.
In this course you'll be able to create a small TCP server and Client and use this to communicate data over a network. This course uses golang as its primary language for development. You will start by creating a TCP based server and establishing connection with the client. Then you'll use this connection to transmit data over the network. Then, you'll be move to the more advanced stage, where you'll start transmitting huge files over the network.