Commit 7e455163 authored by Joe Tsai's avatar Joe Tsai Committed by Joe Tsai

net: update documentation on Conn and PacketConn

Fixes #17982

Change-Id: I4884a6b57905420ac0e37210c411de98c582de1d
Reviewed-on: https://go-review.googlesource.com/33473Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 11106492
...@@ -116,12 +116,12 @@ type Addr interface { ...@@ -116,12 +116,12 @@ type Addr interface {
// Multiple goroutines may invoke methods on a Conn simultaneously. // Multiple goroutines may invoke methods on a Conn simultaneously.
type Conn interface { type Conn interface {
// Read reads data from the connection. // Read reads data from the connection.
// Read can be made to time out and return a Error with Timeout() == true // Read can be made to time out and return an Error with Timeout() == true
// after a fixed time limit; see SetDeadline and SetReadDeadline. // after a fixed time limit; see SetDeadline and SetReadDeadline.
Read(b []byte) (n int, err error) Read(b []byte) (n int, err error)
// Write writes data to the connection. // Write writes data to the connection.
// Write can be made to time out and return a Error with Timeout() == true // Write can be made to time out and return an Error with Timeout() == true
// after a fixed time limit; see SetDeadline and SetWriteDeadline. // after a fixed time limit; see SetDeadline and SetWriteDeadline.
Write(b []byte) (n int, err error) Write(b []byte) (n int, err error)
...@@ -143,7 +143,8 @@ type Conn interface { ...@@ -143,7 +143,8 @@ type Conn interface {
// fail with a timeout (see type Error) instead of // fail with a timeout (see type Error) instead of
// blocking. The deadline applies to all future and pending // blocking. The deadline applies to all future and pending
// I/O, not just the immediately following call to Read or // I/O, not just the immediately following call to Read or
// Write. // Write. After a deadline has been exceeded, the connection
// can be refreshed by setting a deadline in the future.
// //
// An idle timeout can be implemented by repeatedly extending // An idle timeout can be implemented by repeatedly extending
// the deadline after successful Read or Write calls. // the deadline after successful Read or Write calls.
...@@ -309,13 +310,13 @@ type PacketConn interface { ...@@ -309,13 +310,13 @@ type PacketConn interface {
// bytes copied into b and the return address that // bytes copied into b and the return address that
// was on the packet. // was on the packet.
// ReadFrom can be made to time out and return // ReadFrom can be made to time out and return
// an error with Timeout() == true after a fixed time limit; // an Error with Timeout() == true after a fixed time limit;
// see SetDeadline and SetReadDeadline. // see SetDeadline and SetReadDeadline.
ReadFrom(b []byte) (n int, addr Addr, err error) ReadFrom(b []byte) (n int, addr Addr, err error)
// WriteTo writes a packet with payload b to addr. // WriteTo writes a packet with payload b to addr.
// WriteTo can be made to time out and return // WriteTo can be made to time out and return
// an error with Timeout() == true after a fixed time limit; // an Error with Timeout() == true after a fixed time limit;
// see SetDeadline and SetWriteDeadline. // see SetDeadline and SetWriteDeadline.
// On packet-oriented connections, write timeouts are rare. // On packet-oriented connections, write timeouts are rare.
WriteTo(b []byte, addr Addr) (n int, err error) WriteTo(b []byte, addr Addr) (n int, err error)
...@@ -328,21 +329,32 @@ type PacketConn interface { ...@@ -328,21 +329,32 @@ type PacketConn interface {
LocalAddr() Addr LocalAddr() Addr
// SetDeadline sets the read and write deadlines associated // SetDeadline sets the read and write deadlines associated
// with the connection. // with the connection. It is equivalent to calling both
// SetReadDeadline and SetWriteDeadline.
//
// A deadline is an absolute time after which I/O operations
// fail with a timeout (see type Error) instead of
// blocking. The deadline applies to all future and pending
// I/O, not just the immediately following call to ReadFrom or
// WriteTo. After a deadline has been exceeded, the connection
// can be refreshed by setting a deadline in the future.
//
// An idle timeout can be implemented by repeatedly extending
// the deadline after successful ReadFrom or WriteTo calls.
//
// A zero value for t means I/O operations will not time out.
SetDeadline(t time.Time) error SetDeadline(t time.Time) error
// SetReadDeadline sets the deadline for future Read calls. // SetReadDeadline sets the deadline for future ReadFrom calls
// If the deadline is reached, Read will fail with a timeout // and any currently-blocked ReadFrom call.
// (see type Error) instead of blocking. // A zero value for t means ReadFrom will not time out.
// A zero value for t means Read will not time out.
SetReadDeadline(t time.Time) error SetReadDeadline(t time.Time) error
// SetWriteDeadline sets the deadline for future Write calls. // SetWriteDeadline sets the deadline for future WriteTo calls
// If the deadline is reached, Write will fail with a timeout // and any currently-blocked WriteTo call.
// (see type Error) instead of blocking.
// A zero value for t means Write will not time out.
// Even if write times out, it may return n > 0, indicating that // Even if write times out, it may return n > 0, indicating that
// some of the data was successfully written. // some of the data was successfully written.
// A zero value for t means WriteTo will not time out.
SetWriteDeadline(t time.Time) error SetWriteDeadline(t time.Time) error
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment