예제 #1
0
파일: pyudt.py 프로젝트: vmarkovtsev/PyUDT
    def sendmsg(self, data, padding = None, ttl = -1, inorder = False):
        """
        In non-blocking mode this will raise an exception, in blocking 
        mode (default) the call will wait on freed buffer space.

        :param  data    Data to be written
        :type   data    str() 

        :param  padding Set a specified size the data should be written onto.
                        eg: len(data) => 45 padding = 64, data would be sent as
                        |45 bytes data|19 byte bzero| 
        :type   padding int()

        :param  ttl     Time to live for the message in ms : -1 is infinite 
                        ie: garuanteed arrival
        :type   ttl     int()

        :param  inorder Guarantee UDP messages will be received in the order 
                        they were sent.
        :type   inorder bool() 
        """ 
        if None == padding:
            return udt4.sendmsg(self.__sock, data, len(data))
        else:
            return udt4.sendmsg(self.__sock, data, len(data), padding)
예제 #2
0
파일: pyudt.py 프로젝트: bchretien/PyUDT
    def sendmsg(self, data, padding=None, ttl=-1, inorder=False):
        """
        In non-blocking mode this will raise an exception, in blocking 
        mode (default) the call will wait on freed buffer space.

        :param  data    Data to be written
        :type   data    str() 

        :param  padding Set a specified size the data should be written onto.
                        eg: len(data) => 45 padding = 64, data would be sent as
                        |45 bytes data|19 byte bzero| 
        :type   padding int()

        :param  ttl     Time to live for the message in ms : -1 is infinite 
                        ie: garuanteed arrival
        :type   ttl     int()

        :param  inorder Guarantee UDP messages will be received in the order 
                        they were sent.
        :type   inorder bool() 
        """
        if None == padding:
            return udt4.sendmsg(self.__sock, data, len(data))
        else:
            return udt4.sendmsg(self.__sock, data, len(data), padding)
예제 #3
0
def test0(sock):
    """ Send a basic message
    """
    print('server: test0')

    message = 'message in a bottle'
    
    if mode == 'DGRAM':
        udt4.sendmsg(sock, struct.pack('I', len(message)), 4) 
        udt4.sendmsg(sock, message, len(message))
    else:
        udt4.send(sock, struct.pack('I', len(message)), 4) 
        udt4.send(sock, message, len(message))
예제 #4
0
def test1(sock):
    """ Send a basic message on a padded size, this is useful if you might be 
    sending serialized data where the receiver already has a fixed buffer 
    prepared
    """
    print('server: test1')

    pad = 64
    msg = 'words are only words except when they are not'
    
    print(pad) 
    if mode == 'DGRAM':
        udt4.sendmsg(sock, struct.pack('I', pad), 4)
        udt4.sendmsg(sock, msg, pad)
    else:
        udt4.send(sock, struct.pack('I', pad), 4)
        udt4.send(sock, msg, pad)
예제 #5
0
    def runTest(self):
        Thread(target=self.runServer).start()

        udt.connect(self.recevr, '127.0.0.1', 8002)

        for k, i in enumerate([('a', 1), ('b', 2), ('c', 3)]):
            buf = i[0] * (10**i[1])

            if k % 2 != 0:
                self.assertEquals(udt.sendmsg(self.recevr, buf, len(buf)),
                                  len(buf))
            else:
                self.assertEquals(udt.recvmsg(self.recevr, len(buf)), buf)
예제 #6
0
    def runServer(self):
        udt.bind(self.sender, '127.0.0.1', 8002)
        udt.listen(self.sender, 10)

        client, host = udt.accept(self.sender)

        for k, i in enumerate([('a', 1), ('b', 2), ('c', 3)]):
            buf = i[0] * (10**i[1])

            if k % 2 == 0:
                self.assertEquals(udt.sendmsg(client, buf, len(buf)), len(buf))
            else:
                self.assertEquals(udt.recvmsg(client, len(buf)), buf)
예제 #7
0
    def runTest(self):
        Thread(target = self.runServer).start()
        
        udt.connect(self.recevr, '127.0.0.1', 8002)
        
        for k, i in enumerate([('a', 1), ('b', 2), ('c', 3)]):
            buf = i[0] * (10 ** i[1]) 

            if k % 2 != 0:
                self.assertEquals(
                        udt.sendmsg(self.recevr, buf, len(buf)), len(buf)
                        )
            else:
                self.assertEquals(
                        udt.recvmsg(self.recevr, len(buf)), buf
                        )
예제 #8
0
    def runServer(self):
        udt.bind  (self.sender, '127.0.0.1', 8002)
        udt.listen(self.sender, 10) 

        client, host = udt.accept(self.sender)

        for k, i in enumerate([('a', 1), ('b', 2), ('c', 3)]):
            buf = i[0] * (10 ** i[1]) 

            if k % 2 == 0:
                self.assertEquals(
                        udt.sendmsg(client, buf, len(buf)), len(buf)
                        )
            else:
                self.assertEquals(
                        udt.recvmsg(client, len(buf)), buf
                        )