Собственно все что нужно - в тайтле.
Нет, не все. Никакой конкретики о требованиях к библиотеке.
TCP/IP - это 80-е годы прошлого века и с тех пор они почти не развились, поэтому многое не входит в сам протокол и по-прежнему реализуется разработчиком приложения или библиотеки. А если по факту не реализуется, то и не работает, это я на всякий случай. Вроде все просто, что тут хитрого - Read да Write, вроде все сделали, вроде проверили, вроде работает, туда-сюда, но не успело пройти пару часов - как бац - и сервер "упал" в Exception вместе с вашим гонораром за работу!
Оно у вас хотя бы через интернет будет, или в локальной сети?
Это уже две большие разницы.
Клиент либо сервер должен ли работать 24/7, или запустили сервер, запустили клиент, отправили что-то туда-обратно и через 15 минут оба завершали?
Ну а так, я вам могу и AwesomeSockets посоветовать, они и синхронные и асинхронные сообщения поддерживают, только толку от них никакого, ни надежности, ни удобства разработки, да и у вас бы на написание аналогичной библиотеки ушло бы не больше недели на все-про-все.
Из серьезного - смотрите SuperSocket и WCF, но еще раз, сперва сформулируйте задачу.