NAT(Network Address Translation)技术有效地缓解了IPv4地址匮乏的压力,并具有保护网络安全的重要作用.P2P(Peer to Peer)技术的发展改变了传统的C/S架构,使得通信双方更加直接、便捷地交互信息和资源.然而NAT的存在对P2P的应用具有一定的影响.针对这种情况,提出了一种穿透NAT的P2P解决方案.方案由P2PServer和P2PClient端组成,服务端运行在一个拥有公网IP的计算机上,客户端运行在两个不同的NAT后,通过Socket编程来模拟穿透NAT,从而实现P2P通信.实验结果表明,交互的数据不经过中心服务器也可实现两台位于NAT后的主机完成P2P通信.