def send(self, message):
self.conn.send(_pack(message))
- def recv(self):
- maxlen = 2048
+ def recv_packet(self, maxlen):
if sys.platform == "win32":
- def recv_packet():
- while len(self.ipc_rxbuffer) < header_len:
- self.ipc_rxbuffer += self.conn.recv(maxlen)
- packet_len = struct.unpack("<H", self.ipc_rxbuffer[:header_len])[0]
- while len(self.ipc_rxbuffer) < packet_len:
- self.ipc_rxbuffer += self.conn.recv(maxlen)
- packet = self.ipc_rxbuffer[header_len:packet_len]
- self.ipc_rxbuffer = self.ipc_rxbuffer[packet_len:]
- return packet
- packet = recv_packet()
+ while len(self.ipc_rxbuffer) < header_len:
+ self.ipc_rxbuffer += self.conn.recv(maxlen)
+ packet_len = struct.unpack("<H", self.ipc_rxbuffer[:header_len])[0]
+ while len(self.ipc_rxbuffer) < packet_len:
+ self.ipc_rxbuffer += self.conn.recv(maxlen)
+ packet = self.ipc_rxbuffer[header_len:packet_len]
+ self.ipc_rxbuffer = self.ipc_rxbuffer[packet_len:]
else:
packet = self.conn.recv(maxlen)
+ return packet
+
+ def recv(self):
+ maxlen = 2048
+ packet = self.recv_packet(maxlen)
if len(packet) < 1:
return None
if len(packet) >= maxlen:
int len;
int packet_len;
/* ensure we have packet header */
- while (ipc_rxlen < WIN32_HEADER_LEN) {
+ while(ipc_rxlen < WIN32_HEADER_LEN) {
len = recv(sc->socket, (char *)&ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
- if (len)
+ if(len)
ipc_rxlen += len;
}
/* compute packet length and ensure we have the payload */
- packet_len = ((ipc_rxbuffer[1] << 8) | (ipc_rxbuffer[0]));
- while (ipc_rxlen < packet_len) {
- len = recv(sc->socket, (char *) &ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
- if (len)
+ packet_len = (ipc_rxbuffer[1] << 8) | ipc_rxbuffer[0];
+ while(ipc_rxlen < packet_len) {
+ len = recv(sc->socket, (char *)&ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
+ if(len)
ipc_rxlen += len;
}