Они и должны возвращать -1 при отсутствии данных.
Варианта 2 - либо считать код посл ошибки, либо таймаут на обрыв связи.
Лучше и то и другое