DevX.com: Develop a Client/Server Application on Windows and LinuxDec 02, 2000, 12:38 (0 Talkback[s])
(Other stories by Jeff Looman)
"Over the past several years, I've had the opportunity to work on several client/server applications that communicated over a network. I'd always worked above the data transport layer either presenting information to the user within the client or responding to requests within the server. Recently, however, I wrote a library that contains functionality I found common in the various client and server applications I'd worked on. In this article, I'll discuss some of the implementation details associated with constructing a single-port, TCP/IP client/server application, and several of the pitfalls that lurk between your application and the wire your data will be transferred over. I've included a straight C library that contains a small set of functions you can use to construct sockets-based client/server apps. With the exception of platform-specific functions, all the functions discussed in this article are readily available..."
"For any client/server application, the most basic operation is shuttling data over a network between the clients and the server. You can accomplish this task using several approaches, such as Windows Remote Procedure Calls (RPC), Common Object Request Broker Architecture (CORBA), or even Telnet or FTP. Ultimately, they all resolve as calls to some sort of socket library."
"The requirements for my library were pretty simple. It had to function on both Windows 95/98/NT/2000 and Linux. Client-specific code had to be as small as possible. And the server had to allow clients to establish communications on a single port, then handle further communications with the client within a separate thread until termination."