The message is clear. There is no empty constructor defined for UdpEchoClient nor for UdpEchoServer.
For the Client you need to pass an IP and a port number and for the server you need just the port.
The idea of the helper class is to mask the loops and make your life easier.
If you want to create NO_OF_NODES pairs of Client/Server, then you can create your array of NO_OF_NODES UdpClient applications like this (similarly for Server)
Ptr<UdpClient> *app = new Ptr<UdpClient>[NO_OF_NODES];
for (int i=0; i<NO_OF_NODES ; i++){
app[i] = CreateObject<UdpClient>();
app[i]->SetAttribute ("RemoteAddress", AddressValue ( ... ));
... //configure the rest of the attributes you want
}