diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index 44e8918..f066e76 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -598,6 +598,14 @@
         def send(self, *args):
             return os.write(self.fd, *args)
 
+        def getsockopt(self, level, optname, buflen=None):
+            if (level == socket.SOL_SOCKET and
+                optname == socket.SO_ERROR and
+                not buflen):
+                return 0
+            raise NotImplementedError("Only asyncore specific behaviour "
+                                      "implemented.")
+
         read = recv
         write = send
 
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py
index 785b211..c82f9b7 100644
--- a/Lib/test/test_asyncore.py
+++ b/Lib/test/test_asyncore.py
@@ -413,6 +413,19 @@
             w.close()
             self.assertEqual(open(TESTFN, 'rb').read(), self.d + d1 + d2)
 
+        @unittest.skipUnless(hasattr(asyncore, 'file_dispatcher'),
+                             '    asyncore.file_dispatcher required')
+        def test_dispatcher(self):
+            fd = os.open(TESTFN, os.O_RDONLY)
+            data = []
+            class FileDispatcher(asyncore.file_dispatcher):
+                def handle_read(self):
+                    data.append(self.recv(29))
+            s = FileDispatcher(fd)
+            os.close(fd)
+            asyncore.loop(timeout=0.01, use_poll=True, count=2)
+            self.assertEqual(b"".join(data), self.d)
+
 
 def test_main():
     tests = [HelperFunctionTests, DispatcherTests, DispatcherWithSendTests,
diff --git a/Misc/ACKS b/Misc/ACKS
index 519dda4..41c92a0 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -426,6 +426,7 @@
 Andrew Kuchling
 Vladimir Kushnir
 Cameron Laird
+Łukasz Langa
 Tino Lange
 Andrew Langmead
 Detlef Lannert
diff --git a/Misc/NEWS b/Misc/NEWS
index f40c24c..3c51288 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -127,6 +127,8 @@
 
 - Issue #1690103: Fix initial namespace for code run with trace.main().
 
+- Issue #9354: Provide getsockopt() in asyncore's file_wrapper.
+
 - Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when
   re-initializing a buffered IO object by calling its ``__init__`` method.
 
