go で socket の読み込みに timeout を設定する

SetReadDeadline

SetReadDeadline を使って 現在時刻 + α のタイムアウトをコネクションに設定してから読みます

例えば UDP だとこんな感じ

var n int
c.SetReadDeadline(time.Now().Add(5 * time.Second))
n, _, err = c.ReadFromUDP(buffer)

ReadFromUDP が5秒でタイムアウトして err を返します

TCP もだいたい同じです


Last Updated: 1/13/2021, 1:28:40 AM