Winsock solution should be fine. But probably not VFP-based, because VFP cannot handle concurrent requests. While processing a request, a VFP application is not listening.
C++ application can create a separate thread for each request received while continue listening for more requests.
Similar .NET development will probably take a fraction of the time required for creating C++-based solution.