Exemplo n.º 1
0
    def send(self, card_data, cb):
        if self.sock:
            raise "still sending"

        self.cb = cb
        self.data = card_data
        apid = self.config.get_apid()

        if not self.serv:
            self.serv = AoSocketServ()
            self.serv.connect()

        if (apid is None) or (apid != self.apid):
            if self.conn:
                self.conn.close()
                self.conn = None
        self.apid = apid
        if (self.apid is not None) and (not self.conn):
            try:
                self.conn = AoConnection()
                self.conn.open(self.serv, self.apid)
            except:
                self.conn = None
                ut.print_exception()

        self.sock = AoSocket()
        try:
            self.sock.set_socket_serv(self.serv)
            if self.conn:
                self.sock.set_connection(self.conn)
            self.sock.open_tcp()
            #print "making connect request"
            self.sock.connect_tcp(unicode(self.host), self.port, self._connected, None)
            #print "now connecting"
        except:
            self.sock.close()
            self.sock = None
Exemplo n.º 2
0
import e32
from socket import select_access_point
from pyaosocket import AoSocketServ, AoConnection

serv = AoSocketServ()
serv.connect()
try:
    apid = select_access_point()
    conn = AoConnection()
    try:
        conn.open(serv, apid)
    finally:
        conn.close()
finally:
    serv.close()

print "all done"
Exemplo n.º 3
0
class Uploader:
    def __init__(self, config):
        self.config = config
        self.host, self.port, self.path = dest_info
        self.serv = None
        self.conn = None
        self.sock = None
        self.apid = None

    def send(self, card_data, cb):
        if self.sock:
            raise "still sending"

        self.cb = cb
        self.data = card_data
        apid = self.config.get_apid()

        if not self.serv:
            self.serv = AoSocketServ()
            self.serv.connect()

        if (apid is None) or (apid != self.apid):
            if self.conn:
                self.conn.close()
                self.conn = None
        self.apid = apid
        if (self.apid is not None) and (not self.conn):
            try:
                self.conn = AoConnection()
                self.conn.open(self.serv, self.apid)
            except:
                self.conn = None
                ut.print_exception()

        self.sock = AoSocket()
        try:
            self.sock.set_socket_serv(self.serv)
            if self.conn:
                self.sock.set_connection(self.conn)
            self.sock.open_tcp()
            #print "making connect request"
            self.sock.connect_tcp(unicode(self.host), self.port, self._connected, None)
            #print "now connecting"
        except:
            self.sock.close()
            self.sock = None

    def _connected(self, *args):
        #print repr(["_connected", args])
        err, udata = args
        if err:
            self.cancel()
            self.cb(err, None)
        else:
            self.sock.write_data(self.data, self._written, None)

    def _written(self, *args):
        #print repr(["_written", args])
        err, udata = args
        if err:
            self.cancel()
            self.cb(err, None)
        else:
            self.reader = ReadExp(len(http_accepted), self.sock, self._read)
            self.reader.read()

    def _read(self, serr, data):
        #print repr(["_read", serr, data])
        self.cancel()
        if not serr:
            if data == http_accepted:
                equ = "accepted"
            elif data == http_refused:
                equ = "refused"
            else:
                equ = "other"
        self.cb(serr, equ)

    def cancel(self):
        if self.sock:
            self.sock.close()
            self.sock = None

    def close(self):
        self.cancel()
        if self.conn:
            self.conn.close()
        if self.serv:
            self.serv.close()
        self.data = None # to save memory