don't try to send a network message every loop. Use some kind of delay timer. Perform a ping test every now and then (about every 1-2 minutes) to determine how much od a lag time you have and try not to send a message faster than the lag time.
There is no need to perform a checklist for net players during the game, unless you detect a player entering/leaving...
Create a global array for multiplayer data and reference that array from the checklist values... Place all checklist values into this array as you will need them. The most common data is the local ID number (LID for short) and the unique ID number (UID). Do not confuse these. UID is the actual ID a users has for a connection to a game and is unique for each users. The LID is only unique to the current machine, meaning player 2 on computer 2 may have a different UID than player 2 on computer 3 which is caused by each player 2 being a different actual user. But, there can be only one UID, but its non-squential and can't be directly used for arrays while the LID is well suited for arrays.
When checking net message from, that will give you the LID and you can use this information to look up or update other data in the array.
have a cup of coffee and think about what was said here.
You will need to become comfortable with not knowing exactly which computer is actually the real player 1 (if each player starts in a different spot). One option is for each computer to scan through the array of users using the LID and make a sorting note of actual player connection order by checking the UID values. The real player 1 will have the lowest UID while the last player will have the highest UID.
OR....
You could have the host computer send out a message to all players informing thier computer which one is 1,2,3,4 based upon the LID list on the host machine.... Just remember that this list will never match the LID list on client machines where they think that user 1 is the client and 2 is the host .....
So..... in summary
in your array you must track at least
PID - the actual player ID (player 1,2,3,...)
as determined by your game
LID - Order of user connections
Use this to reference the array
UID - Actual user ID unique to all users
determined as users connect to the host
HOST- Identifies this user as the current host
This can change as the game goes on....
Name- A string to store the players name
MID - Memblock ID you use to receive memblock data
can also be used to send data if this is the current user
PING- Ping time for user
MTIM- Message Time. Time that next message will be sent
or that the last message was recieved.