The application developer must decide which type of protocol works best for the particular application. Some questions to ask are:
How reliable must the connection be?
Must the data arrive in the same order as it was sent?
Must it be able to handle duplicate data packets?
Must it have flow control?
Must it acknowledge the messages it receives?
What kind of service can the application live with?
What level of performance is required?
If reliability is paramount, then connection-oriented transport services (COTS) is better.