def queryJsonRPC(host, port, method):
# Connect
if host.endswith('.onion'):
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, 'localhost', 9050, True)
s = socks.socksocket()
else:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(5)
try:
s.connect((host, port))
except:
print 'Can\'t connect to Electrum'
return False
# Send
request = {
'method': method,
'id': 1
}
s.sendall(json.dumps(request) + '\n')
# Receive
response = ''
while True:
try:
msg = s.recv(1024)
response += msg
except socket.timeout:
print 'Socket timeout'
break
except socket.error:
print 'Socket error'
break
else:
if msg.find('\n') != -1 or len(msg) == 0:
break
s.close()
# Parse
try:
result = json.loads(response)
return result['result']
except: pass
return False
评论列表
文章目录