Esempio n. 1
0
 def close(self):
     """
     Closes a socket connection, please @see UdtSocket.__del__ for expected
     behaviour explanation.
     """
     udt4.close(self.__sock)
     self.__udpsock.close()
Esempio n. 2
0
def main(settings):
    udt4.startup() 
    
    #time.sleep(1) # just to wait for server
    
    if not create_client(settings['host'], settings['port']):
        print('failed to create client')
        return 1
    
    send_file()
    udt4.close(client)
Esempio n. 3
0
def main(settings):
    udt4.startup()

    #time.sleep(1) # just to wait for server

    if not create_client(settings['host'], settings['port']):
        print('failed to create client')
        return 1

    send_file()
    udt4.close(client)
Esempio n. 4
0
def main(settings):
    udt4.startup() 

    if not create_server(settings['host'], settings['port']):
        print('failed to create_server')
        return 0
    else:
        print('server socket created successfully')
    
    sock = accept_client() 
    
    recv_file(sock)

    udt4.close(sock) 
    udt4.close(server) 

    udt4.cleanup() 
Esempio n. 5
0
def main(settings):
    udt4.startup()

    if not create_server(settings['host'], settings['port']):
        print('failed to create_server')
        return 0
    else:
        print('server socket created successfully')

    sock = accept_client()

    recv_file(sock)

    udt4.close(sock)
    udt4.close(server)

    udt4.cleanup()
Esempio n. 6
0
def main(settings):
    udt4.startup()

    if not create_server(settings["host"], settings["port"]):
        print("failed to create_server")
        return 0
    else:
        print("server socket created successfully")

    sock = accept_client()

    recv_file(sock)

    udt4.close(sock)
    udt4.close(server)

    udt4.cleanup()
Esempio n. 7
0
def main(settings):
    global mode 
    mode = settings['mode'] 

    udt4.startup() 
    
    #time.sleep(1) # just to wait for server
    
    if not create_client(settings['host'], settings['port']):
        print('failed to create client')
        return 1
    
    perf = udt4.perfmon(client) 
    print(perf)
    print(perf.pktSentTotal)
    print(perf.pktRecvTotal)
    print(perf.usPktSndPeriod)
    print(perf.msRTT)
    test0()
    test1()

    udt4.close(client)
Esempio n. 8
0
def main(settings):
    global mode
    mode = settings['mode']

    udt4.startup()

    if not create_server(settings['host'], settings['port']):
        print('failed to create_server')
        return 0
    else:
        print('server socket created successfully')

    sock = accept_client()

    test0(sock)
    test1(sock)
    test2(sock)

    udt4.close(sock)
    udt4.close(server)

    udt4.cleanup()
Esempio n. 9
0
def main(settings):
    global mode 
    mode = settings['mode'] 
    
    udt4.startup() 

    if not create_server(settings['host'], settings['port']):
        print('failed to create_server')
        return 0
    else:
        print('server socket created successfully')

    
    sock = accept_client() 
    
    test0(sock)
    test1(sock)
    test2(sock)
    
    udt4.close(sock) 
    udt4.close(server) 

    udt4.cleanup() 
Esempio n. 10
0
def httpPostUrl(url,
                mimeType,
                contDisp="",
                dataRef="",
                dataSource="BUFFER",
                dataTargFile="",
                blockSize=65536,
                suspTime=0.0,
                timeOut=None,
                authHdrVal="",
                dataSize=-1):
    """
    This funciton is the UDT version of the same function
    in src/ngamsLib/ngmasLib.py

    Eventually, these two functions will be merged in the near future, i.e. in the year 2030~2032

    Post the the data referenced on the given URL.

    The data send back from the remote server + the HTTP header information
    is return in a list with the following contents:

      [<HTTP status code>, <HTTP status msg>, <HTTP headers (list)>, <data>]

    url:          URL to where data is posted (string).

    mimeType:     Mime-type of message (string).

    contDisp:     Content-Disposition of the data (string).

    dataRef:      Data to post or name of file containing data to send
                  (string).

    dataSource:   Source where to pick up the data (string/BUFFER|FILE|FD).

    dataTargFile: If a filename is specified with this parameter, the
                  data received is stored into a file of that name (string).

    blockSize:    Block size (in bytes) used when sending the data (integer).

    suspTime:     Time in seconds to suspend between each block (double).

    timeOut:      Timeout in seconds to wait for replies from the server
                  (double).

    authHdrVal:   Authorization HTTP header value as it should be sent in
                  the query (string).

    dataSize:     Size of data to send if read from a socket (integer).

    Returns:      List with information from reply from contacted
                  NG/AMS Server (reply, msg, hdrs, data) (list).
    """

    #from ngams import *

    # Separate the URL from the command.
    # an example of url: - houdt://eor-08.mit.edu:7790/QARCHIVE
    #HoUDT - HTTP Over UDT
    if (dataSource.upper().strip() != "FILE"):
        raise Exception(
            'currently only support send files via HTTP Over UDT (socket)')

    urlres = urlparse.urlparse(url)
    if (urlres.scheme.lower() != 'houdt'):
        raise Exception(
            'The protocol scheme %s is not supported by UDT-based HTTP' %
            urlres.scheme)
    host = urlres.hostname
    port = urlres.port
    path = urlparse.urlparse(url).path  # e.g. /QARCHIVE
    socket = create_socket(host, port, blockSize, timeOut)
    if not socket:
        raise Exception('failed to create the udt socket')

    try:
        httpHdr = buildHTTPHeader(path, mimeType, os.path.getsize(dataRef),
                                  authHdrVal, contDisp)
        #print '\n\n%s' % httpHdr
        #info(4,"Sending HTTP header ...")
        print "%s Sending HTTP header" % str(socket.UDTSOCKET)
        ret = reliableUDTSend(socket, httpHdr)
        if (-1 == ret):
            raise Exception('failed to send HTTP header')
        print "%s HTTP header sent" % str(socket.UDTSOCKET)
        #info(4,"HTTP header sent")
        #info(4,"Sending data ...")
        print "%s Sending HTTP data" % str(socket.UDTSOCKET)
        ret = send_file(socket, dataRef)
        print "%s HTTP data sent" % str(socket.UDTSOCKET)
        if (-1 == ret):
            raise Exception('failed to send the file')

        respHdr = HTTPHeader()
        respPay = HTTPPayload()
        print "%s Reading HTTP header from UDT" % str(socket.UDTSOCKET)
        status = readHTTPPacket(socket, respHdr, respPay)
        print "%s HTTP header from UDT read" % str(socket.UDTSOCKET)
        #reply = respHdr.getVal(key)
        if (status == 0):
            # something like HTTP/1.0 200 OK (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html)
            reply = int(respHdr.status.split(' ')[1])
            #print respPay.buff
        else:
            raise Exception('error getting response')
    finally:
        if (socket):
            udt4.close(socket)
            del socket

    return [reply, None, None, respPay.buff]
Esempio n. 11
0
 def close(self):
     """
     Closes a socket connection, please @see UdtSocket.__del__ for expected
     behaviour explanation.
     """
     udt4.close(self.__sock)
Esempio n. 12
0
import socket as socklib
import udt4
import struct

udt4.startup()

socket = udt4.socket(socklib.AF_INET, socklib.SOCK_STREAM, 0)

try:
    udt4.connect(socket, '127.0.0.1', 3001)
except RuntimeError as err:
    print(err)
    import sys
    sys.exit(0)

# recv message #
msg_len = struct.unpack('I', udt4.recv(socket, 4))[0]
message = udt4.recv(socket, msg_len)

print('received message: %s' % message)
assert len(message) == msg_len, 'invalid message received 0'

# send message #
message = 'no bottle found'
udt4.send(socket, struct.pack('I', len(message)), 4)
udt4.send(socket, message, len(message))

# cleanup #
udt4.close(socket)
udt4.cleanup()
Esempio n. 13
0
import struct 

udt4.startup() 

socket = udt4.socket(socklib.AF_INET, socklib.SOCK_STREAM, 0)

try:
    udt4.connect(socket, '127.0.0.1', 3001)
except RuntimeError as err:
    print(err)
    import sys
    sys.exit(0)

# recv message # 
msg_len = struct.unpack('I', udt4.recv(socket, 4))[0]
message = udt4.recv(socket, msg_len)

print(
    'received message: %s' % message
    )
assert len(message) == msg_len, 'invalid message received 0'

# send message #
message = 'no bottle found'
udt4.send(socket, struct.pack('I', len(message)), 4)
udt4.send(socket, message, len(message))

# cleanup #
udt4.close(socket)
udt4.cleanup()