bpo-38600: NULL -> ``NULL``. (GH-17001)

Also fix some other formatting.
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index d443e97..62552bc 100755
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -1675,9 +1675,9 @@
    ``None`` or a :term:`bytes-like object` representing a buffer. In the later
    case it is up to the caller to ensure that the bytestring contains the
    proper bits (see the optional built-in module :mod:`struct` for a way to
-   encode C structures as bytestrings). When value is set to ``None``,
-   optlen argument is required. It's equivalent to call setsockopt C
-   function with optval=NULL and optlen=optlen.
+   encode C structures as bytestrings). When *value* is set to ``None``,
+   *optlen* argument is required. It's equivalent to call :c:func:`setsockopt` C
+   function with ``optval=NULL`` and ``optlen=optlen``.
 
 
    .. versionchanged:: 3.5