def make_transfer(self): self.sock_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # SO_REUSEADDR: http://stackoverflow.com/questions/3229860/what-is-the-meaning-of-so-reuseaddr-setsockopt-option-linux s = self.sock_client s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 50688) # 49.5 KB s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 87380) # 85.3 KB s.bind(self.client_addr) s.connect(self.server_addr) start = datetime.now() ## client -> server sent = 0 while sent < self.filesize: sent += s.send(self.randomfile[sent:sent+4096]) # We have to wait until the server finishes reading data from its socket # and closes the connection. rcvd = s.recv(1) time_up = total_seconds(datetime.now() - start) time.sleep(getattr(self, 'sleep', 0)) # wait for a bucket to fill again ## server -> client start = datetime.now() while len(rcvd) < self.filesize: rcvd += s.recv(1024) time_down = total_seconds(datetime.now() - start) s.close() return time_up, time_down
def make_transfer(self): self.sock_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # SO_REUSEADDR: http://stackoverflow.com/questions/3229860/what-is-the-meaning-of-so-reuseaddr-setsockopt-option-linux s = self.sock_client s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 50688) # 49.5 KB s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 87380) # 85.3 KB s.bind(self.client_addr) s.connect(self.server_addr) start = datetime.now() ## client -> server sent = 0 while sent < self.filesize: sent += s.send(self.randomfile[sent:sent + 4096]) # We have to wait until the server finishes reading data from its socket # and closes the connection. rcvd = s.recv(1) time_up = total_seconds(datetime.now() - start) time.sleep(getattr(self, 'sleep', 0)) # wait for a bucket to fill again ## server -> client start = datetime.now() while len(rcvd) < self.filesize: rcvd += s.recv(1024) time_down = total_seconds(datetime.now() - start) s.close() return time_up, time_down
def test_transfer(self): self.sock_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # SO_REUSEADDR: http://stackoverflow.com/questions/3229860/what-is-the-meaning-of-so-reuseaddr-setsockopt-option-linux s = self.sock_client s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(self.client_addr) s.connect(self.server_addr) start = datetime.now() # client -> server sent = 0 while sent < self.filesize: sent += s.send(self.randomfile[sent:sent+4096]) # We have to wait until the server finishes reading data from its socket # and closes the connection. rcvd = s.recv(1024) delay = total_seconds(datetime.now() - start) #delay = delta.seconds + delta.microseconds/float(10**6) tt = self.estimate_transfer_time(self.filesize, self.client_addr[0], self.server_addr[0]) self.assertAlmostEqual(delay, tt, delta=0.4) # server -> client start = datetime.now() while len(rcvd) < self.filesize: rcvd += s.recv(1024) delay = total_seconds(datetime.now() - start) tt = self.estimate_transfer_time(self.filesize, self.server_addr[0], self.client_addr[0]) self.assertAlmostEqual(delay, tt, delta=0.4) # statistics of qdiscs on IFB must correctly reflect the transmitted data self._test_traffic() s.close()
def test_transfer(self): self.sock_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # SO_REUSEADDR: http://stackoverflow.com/questions/3229860/what-is-the-meaning-of-so-reuseaddr-setsockopt-option-linux s = self.sock_client s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(self.client_addr) s.connect(self.server_addr) start = datetime.now() # client -> server sent = 0 while sent < self.filesize: sent += s.send(self.randomfile[sent:sent + 4096]) # We have to wait until the server finishes reading data from its socket # and closes the connection. rcvd = s.recv(1024) delay = total_seconds(datetime.now() - start) #delay = delta.seconds + delta.microseconds/float(10**6) tt = self.estimate_transfer_time(self.filesize, self.client_addr[0], self.server_addr[0]) self.assertAlmostEqual(delay, tt, delta=0.4) # server -> client start = datetime.now() while len(rcvd) < self.filesize: rcvd += s.recv(1024) delay = total_seconds(datetime.now() - start) tt = self.estimate_transfer_time(self.filesize, self.server_addr[0], self.client_addr[0]) self.assertAlmostEqual(delay, tt, delta=0.4) # statistics of qdiscs on IFB must correctly reflect the transmitted data self._test_traffic() s.close()