def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.components.append(self.__titre()) self.settings = OnlineUserSettings() try: # TODO: enelever ça raise IOError self.settings.load() except IOError: # TODO: ask user for his name self.settings.user_id = Client('Player').id self.settings.user_name = 'Player' self.settings.default() self.settings.save() self.client = Client(self.settings.user_name, self.settings.user_id) gm = self.__game_list() self.components.append(gm) self.__auto_refresh_list(gm).start() self.components.append(self.__create_game_button())
class ClientTests(unittest.TestCase): def setUp(self): self.client = Client("localhost", 5000, client_reactor=proto_helpers.MemoryReactor) def test_sanity(self): self.assertTrue(self.client) def test_property_remote_instructions(self): self.client.get_from.put("hello") self.client.get_from.put("world") self.assertEqual(self.client.remote_instructions, ["hello", "world"]) def test_send_local_instructions_consumes_queue(self): self.client.factory.buildProtocol(None) transport = proto_helpers.StringTransport() self.client.factory.connection.makeConnection(transport) self.client.send_to.put({"hello": "world"}) self.client.send_to.put({"goodbye": "void"}) self.client.send_local_instructions() self.assertIsNone(self.client.send_to.get())
import sys import os sys.path.append(os.path.abspath('..')) from networking.client import Client if len(sys.argv) < 2: print('Need to give a computer to connect to') sys.exit(1) host = sys.argv[1] def printServerData(message): print(message) with Client(22345) as client: client.registerListener(printServerData) client.connect(host) client.startListen() while True: text = input() if text == 'q': break client.sendData(text) print('closing down')
from networking.client import Client client = Client() client.connect() print("Client finished successfully")
from networking.client import Client from networking.server import ServerTcp from networking.encryption import Encryption import kademlia import sys #sys.argv[1] = username #sys.argv[2] = port enc = Encryption() clt = Client(sys.argv[1]) kad = kademlia.Router(10, clt) srv = ServerTcp('0.0.0.0', int(sys.argv[2]), kad)
class OnlineMenu(Composite): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.components.append(self.__titre()) self.settings = OnlineUserSettings() try: # TODO: enelever ça raise IOError self.settings.load() except IOError: # TODO: ask user for his name self.settings.user_id = Client('Player').id self.settings.user_name = 'Player' self.settings.default() self.settings.save() self.client = Client(self.settings.user_name, self.settings.user_id) gm = self.__game_list() self.components.append(gm) self.__auto_refresh_list(gm).start() self.components.append(self.__create_game_button()) def __titre(self, **kwargs): return Text(text='Qubic', position=(-0.3 * window.aspect_ratio, 0.25), origin=(0, 0), scale=2, **kwargs) def __game_button_dict(self): bd = {} def button_online_game(room): if self.client.join(room.id, False): destroy(self) Online(self.client) else: # TODO: show to user print("Room cannot be joined") bd['Name - Players - Specs - Other'] = lambda: 0 for room in self.client.room_list(): label = f'{room.name} -' \ f' {len(room.players)}/2 -' \ f' {len(room.spectators)}' while label in bd: label += ' ' bd[label] = lambda: button_online_game(room) return bd def __game_list(self): return QubicButtonList(self.__game_button_dict()) def __auto_refresh_list(self, button_list: QubicButtonList): def refresh(button_list): button_list.button_dict = self.__game_button_dict() return Sequence(1, Func(refresh, button_list), loop=True) def __create_game_button(self): def f(): r = self.client.create('Room default name') # TODO: self.client.join(r, False) return Button(texture='create_game_button', scale=0.1, position=(0.3, 0.4), on_click=f, tooltip=Tooltip('Create a room'))
def setUp(self): self.client = Client("localhost", 5000, client_reactor=proto_helpers.MemoryReactor)
pyxel.image(2).load( 0, 0, "pirates_vs_cowboys/assets/background/ship_tiles/Crate0.png") HOST = "localhost" PORT = 5000 if __name__ == "__main__": if len(sys.argv) > 1 and sys.argv[1] == "server": try: port = sys.argv[2] except IndexError: port = PORT from networking.server import Server server = Server(PORT) server.run() else: import pyxel from pirates_vs_cowboys.game import Game from pirates_vs_cowboys.matchmaker import Matchmaker from networking.client import Client client = Client(HOST, PORT) networking_thread = NetworkingThread(client) networking_thread.start() matchmaker = Matchmaker(client) players = matchmaker.get_game_state() pyxel_setup() game = Game(client, players, matchmaker.token, game_pyxel=pyxel) game.run() networking_thread.quit()