Index: twisted/test/test_unix.py
===================================================================
--- twisted/test/test_unix.py	(revision 18049)
+++ twisted/test/test_unix.py	(working copy)
@@ -299,7 +299,23 @@
 
         return defer.maybeDeferred(p.stopListening).addCallback(stoppedListening)
 
+class UNIXAddressTestCase(PortCleanerUpper):
+    socketPath = "/tmp/UNIXAddressTestCase.socket"
+    def testConnect(self):
+        """Test that UNIXAddress.connect returns an IConnector"""
+        listeningPort = reactor.listenUNIX(self.socketPath, Factory(self, self.socketPath))
+        self.ports.append(listeningPort)
+        addr = address.UNIXAddress(self.socketPath)
+        conn = addr.connect(TestClientFactory(self, self.socketPath))
+        self.assertTrue(interfaces.IConnector.providedBy(conn))
 
+    def testListen(self):
+        """Test that UNIXAddress.listen returns an IListeningPort"""
+        addr = address.UNIXAddress(self.socketPath)
+        listeningPort = addr.listen(Factory(self, self.socketPath))
+        self.ports.append(listeningPort)
+        self.assertTrue(interfaces.IListeningPort.providedBy(listeningPort))
+
 if not interfaces.IReactorUNIX(reactor, None):
     UnixSocketTestCase.skip = "This reactor does not support UNIX domain sockets"
 if not interfaces.IReactorUNIXDatagram(reactor, None):
Index: twisted/test/test_tcp.py
===================================================================
--- twisted/test/test_tcp.py	(revision 18049)
+++ twisted/test/test_tcp.py	(working copy)
@@ -15,7 +15,8 @@
 from twisted.internet import protocol, reactor, defer, interfaces
 from twisted.internet import error
 from twisted.internet.address import IPv4Address
-from twisted.internet.interfaces import IHalfCloseableProtocol
+from twisted.internet.interfaces import (IConnector, IHalfCloseableProtocol, 
+                                         IListeningPort)
 from twisted.protocols import policies
 
 
@@ -1142,7 +1143,27 @@
         d.addCallback(lambda _: log.flushErrors(RuntimeError))
         return d
 
+class IPv4AddressTestCase(PortCleanerUpper):
+    def testConnect(self):
+        """Test that IPv4Address.connect returns an IConnector"""
+        factory = ClosingFactory()
+        listeningPort = reactor.listenTCP(0, factory)
+        self.ports.append(listeningPort)
+        factory.port = listeningPort
+        portNo = listeningPort.getHost().port
+        addr = IPv4Address("TCP", "127.0.0.1", portNo)
+        conn = addr.connect(MyClientFactory())
+        self.assertTrue(IConnector.providedBy(conn))
 
+    def testListen(self):
+        """Test that IPv4Address.listen returns an IListeningPort"""
+        factory = ClosingFactory()
+        addr = IPv4Address("TCP", "0.0.0.0", 0)
+        listeningPort = addr.listen(factory)
+        self.ports.append(listeningPort)
+        factory.port = listeningPort
+        self.assertTrue(IListeningPort.providedBy(listeningPort))
+
 try:
     import resource
 except ImportError:
Index: twisted/internet/interfaces.py
===================================================================
--- twisted/internet/interfaces.py	(revision 18049)
+++ twisted/internet/interfaces.py	(working copy)
@@ -19,7 +19,19 @@
     Default implementations are in L{twisted.internet.address}.
     """
 
-
+    def connect(factory, timeout=30):
+        """Attempt to connect to my address
+        
+        @param factory: A protocol factory
+        @return: An object which provides L{IConnector}.
+        """
+        
+    def listen(factory, backlog=50):
+        """Attempt to listen at my address
+        
+        @param factory: A protocol factory
+        @return: An object which provides L{IListeningPort}.
+        """        
 ### Reactor Interfaces
 
 class IConnector(Interface):
Index: twisted/internet/address.py
===================================================================
--- twisted/internet/address.py	(revision 18049)
+++ twisted/internet/address.py	(working copy)
@@ -34,6 +34,14 @@
         self.port = port
         self._bwHack = _bwHack
 
+    def connect(self, factory, timeout=30):
+        from twisted.internet import reactor
+        return reactor.connectTCP(self.host, self.port, factory, timeout)
+
+    def listen(self, factory, backlog=50):
+        from twisted.internet import reactor
+        return reactor.listenTCP(self.port, factory, backlog, interface=self.host)
+
     def __getitem__(self, index):
         warnings.warn("IPv4Address.__getitem__ is deprecated.  Use attributes instead.",
                       category=DeprecationWarning, stacklevel=2)
@@ -70,7 +78,15 @@
     def __init__(self, name, _bwHack='UNIX'):
         self.name = name
         self._bwHack = _bwHack
-    
+
+    def connect(self, factory, timeout=30):
+        from twisted.internet import reactor
+        return reactor.connectUNIX(self.name, factory, timeout)
+
+    def listen(self, factory, backlog=50):
+        from twisted.internet import reactor
+        return reactor.listenUNIX(self.name, factory, backlog)
+
     def __getitem__(self, index):
         warnings.warn("UNIXAddress.__getitem__ is deprecated.  Use attributes instead.",
                       category=DeprecationWarning, stacklevel=2)
@@ -92,7 +108,7 @@
         return False
 
     def __str__(self):
-        return 'UNIXSocket(%r)' % (self.name,)
+        return 'UNIXAddress(%r)' % (self.name,)
 
 
 # These are for buildFactory backwards compatability due to
