def test_broadcast(self): broadcast_done = False broadcast_msg = b"foo\0bar\n baz!" while not broadcast_done: event = self.client.service(0) if event.type == bzenet.EVENT_TYPE_RECEIVE: self.assertEquals(event.peer.state, bzenet.PEER_STATE_CONNECTED) self.assertEquals(event.packet.data, broadcast_msg) broadcast_done = True event = self.server.service(0) if event.type == bzenet.EVENT_TYPE_CONNECT: self.assertEquals(event.peer.state, bzenet.PEER_STATE_CONNECTED) self.server.broadcast(0, bzenet.Packet(broadcast_msg))
def test_send(self): msg = b"foo\0bar" msg_received = False while not msg_received: event = self.server.service(0) if event.type == bzenet.EVENT_TYPE_RECEIVE: msg_received = True self.assertEquals(event.packet.data, msg) event = self.client.service(0) if event.type == bzenet.EVENT_TYPE_CONNECT: packet = bzenet.Packet(msg) self.assertEquals(packet.sent, False) ret = self.peer.send(0, packet) self.assertEquals(ret, 0) self.assertEquals(packet.sent, True)
def test_flags(self): self.assertEquals(bzenet.Packet(b"foobar").flags, 0) self.assertEquals( bzenet.Packet(b"foobar", bzenet.PACKET_FLAG_UNSEQUENCED).flags, bzenet.PACKET_FLAG_UNSEQUENCED) self.assertRaises(MemoryError, getattr, bzenet.Packet(), "flags")
def test_dataLength(self): self.assertEquals(bzenet.Packet(b"foobar").dataLength, 6) self.assertEquals(bzenet.Packet(b"foo\0bar").dataLength, 7) self.assertRaises(MemoryError, getattr, bzenet.Packet(), "dataLength")
def test_data(self): self.assertEquals(bzenet.Packet(b"foo\0bar").data, b"foo\0bar") self.assertRaises(MemoryError, getattr, bzenet.Packet(), "data")
counter = 0 run = True while run: event = host.service(1000) if event.type == bzenet.EVENT_TYPE_CONNECT: print("%s: CONNECT" % event.peer.address) elif event.type == bzenet.EVENT_TYPE_DISCONNECT: print("%s: DISCONNECT" % event.peer.address) run = False continue elif event.type == bzenet.EVENT_TYPE_RECEIVE: print("%s: IN: %r" % (event.peer.address, event.packet.data)) continue msg = bytes(bytearray([random.randint(0, 255) for i in range(40)])) packet = bzenet.Packet(msg) peer.send(0, packet) counter += 1 if counter >= MSG_NUMBER: msg = SHUTDOWN_MSG peer.send(0, bzenet.Packet(msg)) host.service(100) peer.disconnect() print("%s: OUT: %r" % (peer.address, msg)) # Part of the test to do with intercept callback and socket.send peer = host.connect(bzenet.Address(b"localhost", 54301), 1) shutdown_scheduled = False run = True
shutdown_recv = False while run: # Wait 1 second for an event event = host.service(1000) if event.type == bzenet.EVENT_TYPE_CONNECT: print("%s: CONNECT" % event.peer.address) connect_count += 1 elif event.type == bzenet.EVENT_TYPE_DISCONNECT: print("%s: DISCONNECT" % event.peer.address) connect_count -= 1 if connect_count <= 0 and shutdown_recv: run = False elif event.type == bzenet.EVENT_TYPE_RECEIVE: print("%s: IN: %r" % (event.peer.address, event.packet.data)) msg = event.packet.data if event.peer.send(0, bzenet.Packet(msg)) < 0: print("%s: Error sending echo packet!" % event.peer.address) else: print("%s: OUT: %r" % (event.peer.address, msg)) if event.packet.data == b"SHUTDOWN": shutdown_recv = True # Part of the test to do with intercept callback and socket.send connect_count = 0 run = True shutdown_recv = False def receive_callback(address, data): if data and data == b"\xff\xff\xff\xffgetstatus\x00":