Even easier is to write a server than neither forks, uses threads, or even has a select loop. Call it a hunch, but I don't get the impression the OP is creating a large service which requires many clients to connect concurrently, each doing massive data transfers. If it's just one or a few clients who connect to the server infrequently, doing a single request for which data can easily be send back to, a simple server that does accept, read, send in a simple loop is often good enough (Been there, done that, didn't get a t-shirt).
Not that the OP was asking how to write a client server system.