I've managed to solve this problem. For someone who mite experience the same problem, the solution is, you need to index the socket threads as each thread will handle each client. To brake it down, when a client connects to a server you need to index that client so that you will have a sort of array clients on one winsock control so to be able to send messages to a particular client only no matter how many clients are connected, you need to send the response within the DataArrival block at least worked for me and you need to send the message like this:
Winsock1(Index).SendData("your data here")
The (Index) will send the message to the requested client only.
Here is the perfect link for this: