If you want to build an enterprise level of application such as a chat application, and that also supports FTP protocol (
File transfer protocol[
^]). The part to build the chatting application would be simple, just simple HTTP based text transfer to the hub and that can be overcome using ASP.NET's Web API. I would recommend that you use Web API and SignalR to build the chat application.
1. Web API can be used to allow communications between devices, that support HTTP protocol ; almost every device from computers, laptops, mobiles to tablets.
2. SignalR would support "real-time" duplex communication. The type required by chat application.
3. ASP.NET Web API is a very simple framework, and if you know ASP.NET MVC, then chances are, you already know Web API.
That is for the chat application, now if you want to share files too. HTTP supports file uploading too. Since you are interested in TCP/IP communication and your question shows that you are not (even) intermediate but a beginner. I would ask you to move on to WCF framework. Which provides an abstracted high-level interface for building applications that work as a client-server model. As a starter, read this:
Creating a Web Service to be consumed by connected Devices via Internet[
^]