windows - Golang, net.TCPConn, SetReadTimeout?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har oprettet en simpel Go-applikation på en Mac til at skrive og læse data til og fra en TCP-forbindelse. Jeg har brugt GAE Go-versionen. Senere portede jeg dette program til Windows, og jeg fik denne fejl:


Connection.SetReadTimeout undefined (type *net.TCPConn has no field or method SetReadTimeout)


Jeg antager, at netpakkeoplysningerne på Golangs hjemmeside beskriver pakken kun for GAE-versionen. Hvordan vil jeg korrekt fastsætte timeout i en ikke-GAE Go-version? [2]

Bedste reference


Med den seneste ugentlige (aka Go 1 RC2) må man bruge de forskellige Set * Deadline metoder for net.Conn type. Bemærk, at de gamle timeouts var i forhold til en begivenhed, deadlines er absolutte gange. Baggrunden for denne ændring er groft: at indstille en [[relative]] timeout på 1 s virker som en god idé i et scenario, men det gælder for hver begivenhed, som at modtage en enkelt byte, hvilket gør det muligt at lave overførsler for at undgå timeout for evigt (med de respektive DOS i nærheden). [3]