Example #1
0
 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
Example #2
0
    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
Example #3
0
 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()
Example #4
0
    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()