Merge: #26209: Clarify type of *localaddr*/*remoteadr* in smtpd docs.
diff --git a/Doc/library/smtpd.rst b/Doc/library/smtpd.rst
index 1c255dd..e383201 100644
--- a/Doc/library/smtpd.rst
+++ b/Doc/library/smtpd.rst
@@ -32,9 +32,10 @@
                       map=None, enable_SMTPUTF8=False, decode_data=False)
 
    Create a new :class:`SMTPServer` object, which binds to local address
-   *localaddr*.  It will treat *remoteaddr* as an upstream SMTP relayer.  It
-   inherits from :class:`asyncore.dispatcher`, and so will insert itself into
-   :mod:`asyncore`'s event loop on instantiation.
+   *localaddr*.  It will treat *remoteaddr* as an upstream SMTP relayer.  Both
+   *localaddr* and *remoteaddr* should be a :ref:`(host, port) <host_port>`
+   tuple.  The object inherits from :class:`asyncore.dispatcher`, and so will
+   insert itself into :mod:`asyncore`'s event loop on instantiation.
 
    *data_size_limit* specifies the maximum number of bytes that will be
    accepted in a ``DATA`` command.  A value of ``None`` or ``0`` means no
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 4a2cf11..6909a64 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -63,6 +63,8 @@
    .. versionchanged:: 3.5
       Writable :term:`bytes-like object` is now accepted.
 
+.. _host_port:
+
 - A pair ``(host, port)`` is used for the :const:`AF_INET` address family,
   where *host* is a string representing either a hostname in Internet domain
   notation like ``'daring.cwi.nl'`` or an IPv4 address like ``'100.50.200.5'``,