def close(self): """ Closes a socket connection, please @see UdtSocket.__del__ for expected behaviour explanation. """ udt4.close(self.__sock) self.__udpsock.close()
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)
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()
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()
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)
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()
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]
def close(self): """ Closes a socket connection, please @see UdtSocket.__del__ for expected behaviour explanation. """ udt4.close(self.__sock)
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()
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()