A communication apparatus that performs communication with apparatuses connected via a network, comprising,
- a memory storing instructions, and
- at least one processor executing the instructions to cause the communication apparatus to:
- create a reception controller for monitoring a receiving port;
- create a first controller, wherein the receiving port is assigned as a data-send-source port of the first controller;
- send, by the first controller, data to a plurality of designated destinations without waiting for a response from each of the plurality of destinations;
- record, by a second controller, send-time information and destination information to a list, according to each data sending;
- initiate a timer upon the recording of the send-time information according to each data sending;
- in a case where a response to one of a plurality of the data sending is received via the receiving port monitored by the reception controller, record information of a send-source of the response;
- send a request for detailed information to the send-source of the received response,
- in a case where a predetermined amount of time has elapsed on the timer, determine, by the second controller, whether the recorded destination information in the list is recorded as the information of the send-source of the response based on a query;
- and
- resend, by the first controller, data to a destination indicated by the destination information that has not been recorded as the information of the send-source of the response, according to an instruction from the second controller based on the determination,
- wherein in a case where the predetermined amount of time has not elapsed on the timer, the determination by the second controller is not performed.