After reading the "SFML Essentials" book I realized that the udp socket receive command needs an sf::IpAddress and unsigned int(port number) so that it can write the sender values to the ip and unsigned int. Because of this confusion I thought a receive command would have to be called for every client( udp.receive(packet, clientIP, clientPORT) ) with the client's IP address being the clientIP variable and the client's port number being the clientPORT variable. I now know the receive command writes values to the sf::IpAddress and port instead of reading them. Sorry for the all the confusion.