1. A computer system for peer-to-peer file sharing comprising: a server computer having an index of information about files that reside on a plurality of peer computers, the server computer selectively coupled to the plurality of peer computers by a network; a plurality of agent programs running on at least two of the plurality of peer computers and operable to transmit index information to the server computer and operable to transmit a requested file; and a file sharing program running on the server computer and operable to perform centralized searches based on the index information transmitted to it across the network by the agent programs, to store peer computer file requests identifying a requested file transmitted across the network by a requesting peer computer of the plurality of peer computers, the requested file being referenced in the index information, and to direct a peer-to-peer computer connection for the purpose of exchanging files between the requesting peer computer and a storing peer computer storing the requested file upon detection of connection of the storing peer computer to the server.