I've been working on a simple java based instant messaging application like Messenger. It works so that clients connect to server application with Socket connection and server directs clients messages to receiving clients. I've read that this is the way that some "real" instant messaging application work.
However, now I would like to develop a file transfer feature and for that I have read quite a lot of articles. It seems that some instant messaging applications establsih a client to client connection but I can't find any information how they do that.
So I would like to get file transfer to work so that files would not be transferred through server but from client to another client so that server won't be saddled with the data transfer of files.
I would appreciate it if someone could tell me how the connection between two clients can be established?