So, I was chatting with an app developer friend the other day (has written a hospital image recognition app, has 12 hospitals on board, etc. he’s doing it professionally) about general stuff and one of the ideas we had for a very basic app (for me to cut my teeth on with modern development tools) is a dumbed down network diagnostic.
So, this is my new project. Its been decades since I’ve done any real programming outside of scripting (last time programming in any serious language © was coding on a DIKU based MUD in the late 90s / early 00s). Back in the days with no IDE, just vim, gcc and GNU make. The only IDE i’ve seriously used was Turbo Pascal or Turbo C way back…
I’ve never done any socket programming, and never written anything in swift. Swift is the new hotness for iOS and macOS so why not kill 2 birds with one stone?
So, my objective is to write a diagnostic application, which, given an IP address a protocol and a port will attempt to give the user various connection stats, such as
- traceroute
- packet loss
- ping time
- etc.
… without using any system utilities (i.e., re-implementing ping and traceroute, etc. myself with sockets). It will also highlight areas of concern automatically with some sensible/configurable thresholds.
The idea being a “dumb end user” (i.e., not a network admin) can plug in some host information and get some automatically checked network info for diagnostic purposes that they can send to a network admin or developer.
Plan to make it command line in macOS or Linux (via open source swift - maybe C first then port) and port it to iOS later.
Currently, i’m refreshing my brain with the way IP works from a programming perspective with Beej’s famous network programming guide
I’m also reading through this swift network programming guide
My time has been kinda limited lately, but i figure i can do this in stages, and will kill two birds with one stone (sockets and swift).