net: make WriteTo fail when UDPConn is already connected

Fixes #2773.

R=rsc
CC=golang-dev
https://golang.org/cl/5571056
diff --git a/src/pkg/net/udpsock_posix.go b/src/pkg/net/udpsock_posix.go
index b3a0761..fa3d29a 100644
--- a/src/pkg/net/udpsock_posix.go
+++ b/src/pkg/net/udpsock_posix.go
@@ -9,11 +9,14 @@
 package net
 
 import (
+	"errors"
 	"os"
 	"syscall"
 	"time"
 )
 
+var ErrWriteToConnected = errors.New("use of WriteTo with pre-connected UDP")
+
 func sockaddrToUDP(sa syscall.Sockaddr) Addr {
 	switch sa := sa.(type) {
 	case *syscall.SockaddrInet4:
@@ -182,6 +185,9 @@
 	if !c.ok() {
 		return 0, os.EINVAL
 	}
+	if c.fd.isConnected {
+		return 0, &OpError{"write", c.fd.net, addr, ErrWriteToConnected}
+	}
 	sa, err := addr.sockaddr(c.fd.family)
 	if err != nil {
 		return 0, &OpError{"write", c.fd.net, addr, err}