Internet applications, such as video streaming, critical-mission, and health applications, require real-time or near real-time data delivery. In this context, Software Defined Networking (SDN) has been introduced to simplify the network management providing a more dynamic and flexible configuration based on centralizing the network intelligence. One of the main challenges in SDN applications consists of selecting the number of deployed SDN controllers, and their locations, towards improving the network performance in terms of low delay and high reliability. Traditional k-center and k-median methods have been fairly successful in reducing propagation latency, but ignore other important network aspects such as reliability. This paper proposes a new approach for controller placement that addresses both network reliability and reducing network delay. The proposed heuristic algorithm focuses on four different robustness functions, viz, algebraic connectivity (AC), network criticality (NC), load centrality (LC), and communicability, and has been applied in four different real-world physical networks, for performance evaluation based on degree-, closeness-, and betweenness-based centrality-based attacks. Experimental results show that the proposed controller selection algorithms based on AC, NC, LC, and communicability, achieve a high network resilience and low C2C delays, outperforming the latest, widely-used baseline methods, such as k-median and k-center ones, especially when using the NC method.