We propose cMAC, a centralized, polling-based protocol for wireless LANs. With cMAC, the access point (AP) sets nodes into the polling mode if they have backlogged data and polls them during the polling period. The AP also periodically opens the contention period to allow nodes with newly arrived data to send data and at the same time announce their queue states. The main feature of cMAC is that it aggressively sets nodes into the polling mode to reduce collision and overhead. We design an algorithm to determine the length of the contention period according to the maximum likelihood estimation of the number of competing nodes. We also show that cMAC is robust against message losses. We test cMAC using ns2 simulator and the results show (1) cMAC achieves significant gain, e.g., 56% with 50 nodes, over 802.11 DCF in throughput with lower average packet delay; (2) cMAC can handle uplink and downlink traffic simultaneously and (3) cMAC is backward compatible with legacy 802.11 nodes.