нет сигнала, поэтому я делаю сервер для своего лифта в Go и запускаю функцию «обработчик» как горутину с TCP-соединение. Я хочу, чтобы он читал из соединения, и если в течение определенного промежутка времени сигнал не обнаружен, я хочу, чтобы он возвращал ошибку.
func handler(conn net.Conn){
conn.SetReadTimeout(5e9)
for{
data := make([]byte, 512)
_,err := conn.Read(data)
}
}
Пока у меня есть клиент, отправляющий данные по соединению, он работает нормально, но как только клиент перестает отправлять данные, функция net.Read возвращает ошибку EOF и начинает цикл без каких-либо задержек.
Возможно, так и должно работать чтение, но может ли кто-нибудь предложить другой способ решения проблемы без необходимости закрывать и открывать соединение каждый раз, когда я хочу что-то прочитать?