Olá, tenho experiencia de programação socket com delphi usando sgcWebSockets v.3.3, pois da suporte multithread, suporta todo tipo de arquivos (binarios ou texto), mas talvez a resposta para o problema seja mais simples que uma re-implementação,
cabe verificar o codigo para o aprimoramento.