DEV Community

Cover image for Intro to The Network Programming Series
Mazdak Parnian
Mazdak Parnian

Posted on • Originally published at mazdakparnian.com

Intro to The Network Programming Series

Working with networks always seems intimidating, specially when starting out. From my earlier days a software developer, networking concepts seemed difficult to get around. Even after I took a Network+ course to understand the fundamentals of networking, it was the development side of things that had me sweating. Like all things difficult, I tend to jump in hot instead of running away!
So I searched around and found myself a book, "Hands-On Network Programming with C# and .NET Core" by Sean Burns. The name pretty much explains the book. I wanted something to show me .NETs capabilities with networks and the book seemed like a great start to that.

What is Network Programming?

By now there's a chance that some of you are wondering, what really is network programming?
At first it might sound like some guru sort of coding! But what it really means is writing programs that utilize your Operating Systems networking capabilities and allow you to control them to your benefit.
Any sort of program that uses a network falls under that category; things like setting up a lan, using FTP to transfer files, using a GET HTTP Request to get some data from a server, the list goes on. There's a really good chance that you've done some sort of network programming without even knowing the term!
As backend developers, our work involves setting up networks most of the time, more specifically, setting up HTTP servers and providing/consuming resources over the network.
It bothered me that I felt like I was using some blackbox to setup my servers. I like knowing what's happening under the hood. Plus, it's not just about knowing! There's a lot of things that the framework offers that you can use to solve your challenges and knowing more never hurts.

What Is This Series?

One thing about learning (niche) topics like this, is that you most definitely will forget some parts. Not that it's a bad thing, there's just too much information and it's mostly good to know what exists and look for details on it later.
So I thought I'd start a series on the topic, keep things organized so I can find the important stuff later again, and also share the good stuff with YOU!

Prerequisites

While the book firstly covers networking basics and concepts, I don't want this to be the book. If you really have no idea what networks are, or what's an IP, or protocols like HTTP or similar topics, the series would probably confuse you more and I suggest you read on networking fundamentals. There are great sources for that on the internet in any form you prefer, or you can simply read the book I mentioned earlier, it covers all the concepts one needs to know to get started with networks.

What I'll Cover

I want to cover the practical side of networking. Mostly how .NET does things and how to work with the tools the framework offers. Some examples could include:

  • Streams
  • Sockets & Ports
  • FTP
  • TCP & UDP
  • Security
  • Analysis & Packet Inspection

These are the sort of topics that interest me and they are why I decided to dive deep in networks! I hope you also find the series useful! Be sure to keep in touch if you have any suggestions or questions!

Top comments (0)