#ifndef PINGER_H
 #define PINGER_H
 
+#include <stdint.h>
+
 #include <string>
 
 #include <boost/function.hpp>
 public:
     virtual void ping(
             const std::string &destination_ip,
-            const int destination_port,
+            const uint16_t destination_port,
             boost::function<void(bool)> ping_done_callback
     ) = 0;
 
 protected:
     Pinger();
-    Pinger( const Pinger &other );
     virtual ~Pinger();
 
+private:
+    Pinger( const Pinger &other );
     Pinger& operator=( const Pinger &other );
 
 };
 
 PingScheduler::PingScheduler(
         const string &network_interface,
         const string &destination_address,
-        const int destination_port,
+        const uint16_t destination_port,
         const PingProtocol ping_protocol,
         const long ping_interval_in_sec,
         const int ping_fail_percentage_limit,
 
 void PingScheduler::ping(
         const string &destination_ip,
-        const int destination_port
+        const uint16_t destination_port
 )
 {
     BOOST_ASSERT( !destination_ip.empty() );
-    BOOST_ASSERT( ( 0 <= destination_port ) && ( destination_port < numeric_limits<uint16_t>::max() ) );
+    BOOST_ASSERT( ( 0 < destination_port ) && ( destination_port < numeric_limits<uint16_t>::max() ) );
 
     Ping->ping(
             destination_ip,
 
 #ifndef PINGSCHEDULER_H
 #define PINGSCHEDULER_H
 
+#include <stdint.h>
+
 #include <string>
 #include <vector>
 
     PingScheduler(
             const std::string &network_interface,
             const std::string &destination_address,
-            const int destination_port,
+            const uint16_t destination_port,
             const PingProtocol ping_protocol,
             const long ping_interval_in_sec,
             const int ping_fail_percentage_limit,
     bool resolve_ping_address();
     void ping(
             const std::string &destination_ip,
-            const int destination_port
+            const uint16_t destination_port
     );
     void ping_done_handler(bool ping_success);
 
     /// The list of IPs which are aliases to the host DNS
     DnsResolver IpList;
     /// The port to ping at destination host
-    int DestinationPort;
+    uint16_t DestinationPort;
     /// Object responsible to evaluate the status of the host
     HostStatusAnalyzer HostAnalyzer;
     /// Internal boost pinger object
 
 #ifndef ICMP_PINGER_H
 #define ICMP_PINGER_H
 
+#include <stdint.h>
+
 #include <string>
 
 #include <boost/asio.hpp>
 
     virtual void ping(
             const std::string &destination_ip,
-            const int destination_port,
+            const uint16_t destination_port,
             boost::function< void(bool) > ping_done_callback
     );
 
 
 on this file might be covered by the GNU General Public License.
 */
 #include <signal.h>
+#include <stdint.h>
 
 #include <vector>
 #include <iostream>
     BOOST_FOREACH( HostItem host, hosts )
     {
         string destination_address = host->get_address();
-        int destination_port = host->get_port();
+        uint16_t destination_port = host->get_port();
         int ping_interval_in_sec = host->get_interval_in_sec();
         PingSchedulerItem scheduler(
                 new PingScheduler(
 
 #ifndef TCP_PINGER_H
 #define TCP_PINGER_H
 
+#include <stdint.h>
+
 #include <string>
 
 #include <boost/asio.hpp>
 
     virtual void ping(
             const std::string &destination_ip,
-            const int destination_port,
+            const uint16_t destination_port,
             boost::function<void(bool)> ping_done_callback
     );
 
 
     void set_destination_endpoint(
             const std::string &destination_ip,
-            const int destination_port
+            const uint16_t destination_port
     );
 
     void start_send();