バイナリプロトコルを実装するnode.jsにTCPサーバを作成しました。 バッファを使用すると、これはnode.jsで非常に簡単でした。 http://nodejs.org/docs/v0.5.3/api/buffers.htmlバイナリプロトコルをPythonで実装する(ツイスト)
私は、twistedを使ってPython 2.7で私のプロトコルを実装するのと同様の方法を探しています。 しかし、python 3と何らかのイベントが発生したI/Oを組み合わせた作業のためのツールがあれば教えてください。 Python 3のバイトオブジェクトのため、最初はPython 3がバイナリプロトコルを扱う方が優れています。私は多くのTCP(とUDP)接続を処理し、少しのGUIを書く必要があります。ここで
は、Node.jsの中で私のプロトコルを実装する方法は次のとおりです。
var buf = new Buffer(5+data.length), //headers + data (data is also a buffer)
action = 0x01;
buf[0] = action;
buf.writeUInt16(data.length,1,'big'); //write content length in at offset 1
buf.writeUint16(12345,5,'big'); //message identifier at offset 3
data.copy(buf,5); //copy data into message at offset 5
socket.write(buf);
私はPythonで同様の指示を達成する方法について例をいただければ幸いです。
編集:
self.transport.write(struct.pack('!bHH',action,data.length, sock_id) + data)
完全にカスタムなものを考案するのではなく、Nodeに既存のプロトコルを実装することができます。 AMPはTwistedのメッセージベースのプロトコル構築キットで、他のシステムとの連携が非常に簡単に設計されています。それを標準化する作業については、http://amp-protocol.net/を参照してください。 – Glyph