у тебя каким образом работает чат ?
по-хорошему, твой самодельный протокол должен поддерживать как минимум 2 типа сооьщений - служебные и собственно сообщения пользователей.
например:
Клиент1 ищет сервер - служ. "есть сервер?"
Сервер получил запрос - "я тут! мой IP"
Клиент1 - вот мой ник (статус, статус-сооьщение et c.)
Сервер "Ok, ты вошел"
Клинент1 - "кто в сети?"
Сервер - "вот тебе список: " - посылает список... хотя лучше поддержка контакт-листа на стороне клиента, тогда произойдет нечно вроде этого:
for i:=1 to contactlist.count do запросить статус контакта (contactlist[i])
Список получен, теперь клиент может общаться с другими:
Клиент1 Серверу общ. "Привет всем"
Сервер рассылает всем другим клиентам. (если чат небольшой)
примерно так... блин, понаписал всякой ереси, прошу не колотить

Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?