We present a social-aware data forwarding scheme from a mobile source to a mobile destination in disruption tolerant networks. By incorporating any scattered network devices as temporal data storage for forwarding into parts of forwarding path, we aim to find the most effective relay path consisting of mobile-to-stationary and stationary-to-mobile relays. We combine the 'carry-and-forward' scheme for stationary-to-mobile transmission with the 'store-and-forward' for mobile-to-stationary transmission for improving both delivery rate and packet delay performance. We formulate this relay selection problem into a mixed-integer linear program, considering two crucial QoS constraints of packet delivery rate and deadline. We find the optimal forwarding path of all relevant mobile relays as well as their corresponding stationary nodes as bridges between mobile relays. We validate our algorithm based on a real-world dataset in terms of routing cost and packet transmission time compared to a baseline counterpart.