P2P applications have become enormously popular and currently take into account a large majority of the traffic transmitted over the Internet. A unique characteristic of P2P networks is their flexible and robust operation, which is enabled by the peers’ ability to serve as both servers and clients. Thus, P2P networks are able to provide a cost effective and easily deployable solution for sharing large files among participating peers with no significant help from a de facto, centralized infrastructure. Due to these advantages, P2P networks have also recently become popular for multimedia streaming. The requirements for general file sharing and real-time media streaming are very different and thus, we discuss in this chapter solutions for both these applications. We begin the chapter with an overview of various P2P network structures and their advantages and disadvantages. We then present in detail the BitTorrent system, which is one of the most popular file sharing protocols. We then overview existing P2P-based media streaming applications, and discuss mechanisms that have been developed to support such applications. We also discuss state-of-the-art research in P2P networks which is based on several game theoretic approaches.