diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst
index b0a3fa4..f15d659 100644
--- a/Doc/howto/sockets.rst
+++ b/Doc/howto/sockets.rst
@@ -1,3 +1,5 @@
+.. _socket-howto:
+
 ****************************
   Socket Programming HOWTO
 ****************************
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index bcb317b..8ac47fb 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -725,7 +725,8 @@
    optional *flags* argument has the same meaning as for :meth:`recv` above.
    Returns the number of bytes sent. Applications are responsible for checking that
    all data has been sent; if only some of the data was transmitted, the
-   application needs to attempt delivery of the remaining data.
+   application needs to attempt delivery of the remaining data. For further
+   information on this concept, consult the :ref:`socket-howto`.
 
 
 .. method:: socket.sendall(string[, flags])
@@ -863,8 +864,8 @@
 :meth:`~socket.bind`, :meth:`~socket.listen`, :meth:`~socket.accept` (possibly
 repeating the :meth:`~socket.accept` to service more than one client), while a
 client only needs the sequence :func:`socket`, :meth:`~socket.connect`.  Also
-note that the server does not :meth:`~socket.send`/:meth:`~socket.recv` on the
-socket it is listening on but on the new socket returned by
+note that the server does not :meth:`~socket.sendall`/:meth:`~socket.recv` on
+the socket it is listening on but on the new socket returned by
 :meth:`~socket.accept`.
 
 The first two examples support IPv4 only. ::
@@ -882,7 +883,7 @@
    while 1:
        data = conn.recv(1024)
        if not data: break
-       conn.send(data)
+       conn.sendall(data)
    conn.close()
 
 ::
@@ -894,7 +895,7 @@
    PORT = 50007              # The same port as used by the server
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
-   s.send('Hello, world')
+   s.sendall('Hello, world')
    data = s.recv(1024)
    s.close()
    print 'Received', repr(data)
@@ -966,7 +967,7 @@
    if s is None:
        print 'could not open socket'
        sys.exit(1)
-   s.send('Hello, world')
+   s.sendall('Hello, world')
    data = s.recv(1024)
    s.close()
    print 'Received', repr(data)
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index 252e568..62caf2b 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -360,7 +360,7 @@
            print "{} wrote:".format(self.client_address[0])
            print self.data
            # just send back the same data, but upper-cased
-           self.request.send(self.data.upper())
+           self.request.sendall(self.data.upper())
 
    if __name__ == "__main__":
        HOST, PORT = "localhost", 9999
@@ -390,7 +390,7 @@
 The difference is that the ``readline()`` call in the second handler will call
 ``recv()`` multiple times until it encounters a newline character, while the
 single ``recv()`` call in the first handler will just return what has been sent
-from the client in one ``send()`` call.
+from the client in one ``sendall()`` call.
 
 
 This is the client side::
@@ -407,7 +407,7 @@
    try:
        # Connect to server and send data
        sock.connect((HOST, PORT))
-       sock.send(data + "\n")
+       sock.sendall(data + "\n")
 
        # Receive data from the server and shut down
        received = sock.recv(1024)
@@ -505,7 +505,7 @@
            data = self.request.recv(1024)
            cur_thread = threading.current_thread()
            response = "{}: {}".format(cur_thread.name, data)
-           self.request.send(response)
+           self.request.sendall(response)
 
    class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
        pass
@@ -514,7 +514,7 @@
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.connect((ip, port))
        try:
-           sock.send(message)
+           sock.sendall(message)
            response = sock.recv(1024)
            print "Received: {}".format(response)
        finally:
diff --git a/Misc/NEWS b/Misc/NEWS
index 64c2a8a..fec58ea 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -90,6 +90,9 @@
 Library
 -------
 
+- Issue #6005: Examples in the socket library documentation use sendall, where
+  relevant, instead send method.
+
 - Issue #10811: Fix recursive usage of cursors. Instead of crashing,
   raise a ProgrammingError now.
 
