Social networks have shown increasing popularity in real-world applications. Community detection is one of the fundamental problems. In this paper, we study how to partition the social networks into communities from a novel perspective. We define the mutual closeness and strangeness between each vertex pairs, and formulate our problem as a semidefinite program considering both the tightness of the same community and the looseness across different communities. Two NP-hard issues are addressed. One is to partition the social networks into communities through maximizing the tightness within the same community and the looseness between different communities. In the other issue, we take community volume into consideration such that the obtained communities have similar sizes. We give the mathematical models and the objective functions, and then analyze the performance bounds of the proposed algorithms. At last, we validate our method's effectiveness by comparing them with a highly effective existing partitioning method on real-world and artificial data sets.