Actum Ne Agas
-- "Do Not Do A Thing Already Done"
These requirements are old-hat in the computing world. You do not need to start from scratch. You do not need to start out by "hacking sockets." Instead of letting your thoughts jump ahead to "low-level" implementation details, keep your view "high-level" as long as possible.
Start by defining, in detail, what
the application needs to do, and for whom. Not how,
Once you have done that, in a week or two, proceed to identify -- and research to some degree -- at least five ways
that the job could be done, using five different tools. Choose the simplest; not the slickest.
It is also desirable to design so that "it doesn't matter which machine is driving the train." Development tools and techniques should be common to both. That can take some doing.
Remember also, your "prototype" will be your finished work,
so delay creating prototypes as long as possible.