Our first project has been created, a Simple Socket Server and Client. In this project, you'll learn the basics of server/client socket programming in Java, including the development of multi-threaded servers and clients. We'll build off this humble starting point in future projects to develop actual database servers and clients. Check it out and let me know what you think at matthew.hagy@gmail.com.
I'll admit I had previously never done low-level socket programming in Java. Instead, I have always used various frameworks such as netty to handle these low-level details and allow me to focus on the application. In keeping with the spirit of DB From Zero, I chose not to use a framework and instead used the standard Java socket components.
It was surprisingly easy to use components such as
ServerSocket
and
Socket
to create
the server and client, respectively. While I had expected to have to learn and experiment with a lot of different
networking details, I instead found myself just having to write a few lines of code to set everything up. The
biggest thing that I had to figure out was how terminate a blocking socket IO operation from another thread, which
I learned could be accomplished by calling
close
on the socket from another thread.
Overall, I'm now actually considering using these low-level socket networking components in my future profession work with Java.