If I have one server object and one or more client objects, each has their own IP address on the same subnet.
Whether the devices are all on the same subnet, or not, is irrelevant, from the point of view of the Arduino as server or the Arduino as client.
Each client object will communicate with a different server hardware device on the intranet.
So, each server will serve one client. How is there a risk, then, of sending data to the wrong client?
The server object will receive client requests from the Windows host computer.
I don't know what you mean by "the Windows host computer". The OS on the server or on the client is completely irrelevant.
Currently, I only have only one ethernet server object and no clients. In main sketch loop, I have this code
How can you be calling the available() method for a client you don't have?
if(tempChar != 13)
{
m_command[m_commandLength] = tempChar;
m_commandLength += 1;
}
Is m_command{} going to magically grow to accommodate unlimited amounts of data?
Will I lose any incoming ethernet data for other ethernet objects by calling led.WaitClient();
Without knowing what led is, or what it's WaitClient() method does, that question can not be answered.
How does the sketch know how to distribute incoming packet data to the correct object?
There is only one active client object at a time. That is the one that the methods available(), read(), and write() are called on. The connection between that object and the incoming stream of data is maintained by the WizNet hardware.
Does the assignment of the IP address take care of that, or do I need to have special code to test?
I don't understand the question. Packets routed to the Arduino have both a source IP address (who issued the request, so the response goes back to the right place) and a destination IP address (that of the Arduino). The ethernet shield takes care of getting the incoming packets for the active client routed to the client object.