def wait(self): self.local = network.Connection() self.remote = network.Connection() self.local.whenHungUp(self.close) self.remote.whenHungUp(self.close) #trace("Waiting for incoming local connection") self.local.wait(whenHearCall=self.localIncoming, port=self.localPort) #trace("local connection connected") #trace("connecting to remote") self.remote.call(remoteServer, whenHearCall=self.remoteIncoming, port=self.remotePort)
def __init__(self, pos, size=(50, 50)): self.nodes = [ network.Node(arg[0], self, arg[1]) for arg in self.nodes_arguments ] self.pos = pos self.size = size self.world = None if pos is not None: for n in self.nodes: old_pos = n.pos n.pos = tuple(old_pos[i] + self.pos[i] for i in [0, 1]) for c in self.con_indices: con = network.Connection(self.nodes[c[0]], self.nodes[c[1]], c[2]) self.nodes[c[0]].connections.add(con)
def __init__(self, isServer, name, ip, port, log): self.log = log self.config = Config() #set up world base.win.setClearColor(Vec4(0, 0, 0, 1)) self.environ = loader.loadModel('resources/models/world') self.environ.reparentTo(render) self.environ.setPos(0, 0, 0) Character.startPosition = self.environ.find('**/start_point').getPos() #set up collisions Character.collisionTraverser = CollisionTraverser() if SHOW_COLLISIONS: Character.collisionTraverser.showCollisions(render) #set up networking mode = network.MODE_SERVER if isServer else network.MODE_CLIENT self.connection = network.Connection(mode, name, ip, port, log=self.log) self.sendDeltaT = 0 #set up local client self.control = Controller(self.connection.localUser.char, self.config.controlDict) taskMgr.add(self.step, 'world-step') #set up characters if network.mode == network.MODE_SERVER: self.ai = [] for i in range(1): c = Character(name='Zombie') self.ai.append(AIController(c)) print 'INITIALIZING SERVER WITH', len(self.ai), 'ZOMBIES' else: self.controlList = []
if len(sys.argv) != 4: usage() def get_line(conn): line = None while line is None: line = conn.recv() return line server_ip = sys.argv[1] server_port = int(sys.argv[2]) client_port = int(sys.argv[3]) conn_server = network.Connection() # connection with server conn_client = network.Connection() # connection with client dh_server = None dh_client = None crypto_protocol_server = None crypto_protocol_client = None try: conn_client.listen(client_port) except: print "Unable to open port %d" % client_port sys.exit() try: conn_server.connect(server_ip, server_port) except:
import network from diffie_hellman import DiffieHellman from crypto_protocol import CryptoProtocol def usage(): print "Usage:" print " Server: " + sys.argv[0] + " port_number" print " Client: " + sys.argv[0] + " ip_address port_number" sys.exit() if not (len(sys.argv) == 2 or len(sys.argv) == 3): usage() conn = network.Connection() dh = None def get_line(): line = None while line is None: line = conn.recv() return line if len(sys.argv) == 2: # server try: conn.listen(int(sys.argv[1])) except: print "Unable to open port %d" % int(sys.argv[1])