| 102 |
| 103 |
| 104 |
| 105 |
| 106 |
| 107 |
| 108 |
| 109 |
| 110 |
| 111 |
| 112 |
| 113 |
| 114 |
| 115 |
| 116 |
| 117 |
| 118 |
| 119 |
| 120 |
| 121 |
| 122 |
| 123 |
| 124 | |
def new_remote(cls, gateway, hostport=None): |
""" return a new (connected) socket gateway, instatiated |
indirectly through the given 'gateway'. |
""" |
if hostport is None: |
host, port = ('', 0) |
else: |
host, port = hostport |
socketserverbootstrap = py.code.Source( |
mypath.dirpath('script', 'socketserver.py').read('rU'), """ |
import socket |
sock = bind_and_listen((%r, %r)) |
port = sock.getsockname() |
channel.send(port) |
startserver(sock) |
""" % (host, port) |
) |
|
channel = gateway.remote_exec(socketserverbootstrap) |
(realhost, realport) = channel.receive() |
|
|
return py.execnet.SocketGateway(host, realport) | |