
10
장
네트워킹
263
10.4
네트워크 접속
네트워크 통신은 비동기 특성으로 인해 다루기가 어렵습니다. 간단하게 실험할 때는 네트워크
노드에 동기식으로 접속할 수 있습니다.
5
>>> import socket
>>> from network import NetworkEnvelope, VersionMessage
>>> host = 'testnet.programmingbitcoin.com'
➊
>>> port = 18333
>>> socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> socket.connect((host, port))
>>> stream = socket.makefile('rb', None)
➋
>>> version = VersionMessage()
➌
>>> envelope = NetworkEnvelope(version.command, version.serialize())
>>> socket.sendall(envelope.serialize())
➍
>>> while True:
... new_message = NetworkEnvelope.parse(stream)
➎
... print(new_message)
➊
host
는 저자가 설치한 테스트넷 노드입니다. 테스트넷 디폴트 포트는
18333
입니다.
➋ 소켓으로부터 ...