А что возвращается-то?
Добавлено позже: функция SendData кривая какая-то, будто еще под Turbo Pascal писана. Я бы написал так:
Код:
function SendData(St : AnsiString) : Boolean;
begin
Result := send(Sock, St[1], Length(St) + 1, 0) > SOCKET_ERROR + 1;
end;
Ноль там надо отправлять в конце по правилам? Если не надо, прибавление единицы к Length(St) излишне.