create a P2P application to share files. Any of the two peers can choose a file and start sending it to the other peer.
The file has to be split in chunks of size 512 bytes.
You can pick a small file such a text file or small audio file to test it out. So when you read the file on Peer1, you should read it as an array of bytes and send all pieces of it of size 512 bytes. As pieces arrive to peer2, it should reconstruct the file. Once all pieces have arrived on the second peer, peer2 should have the full file in its location.
You should test it out once it fully arrives to make sure the file opens and it is not corrupt.
Be careful with last packet as it might contain less than 512 bytes.
The program should use the client thread to send packets and the server thread to receive it. Any peer should be capable of either sending or receiving it as it is P2P.