コード例 #1
0
 def connect(self):
     self.sock = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
     btsocket.set_default_access_point(
         btsocket.access_point(btsocket.select_access_point()))
     addr, services = btsocket.bt_discover()
     print "Discovered: %s, %s" % (addr, services)
     if len(services) > 0:
         import appuifw
         choices = services.keys()
         choices.sort()
         choice = appuifw.popup_menu(
             [unicode(services[x]) + ": " + x for x in choices],
             u'Choose port:')
         port = services[choices[choice]]
     else:
         port = 1
     address = (addr, port)
     print "Connecting to " + str(address) + "...",
     self.sock.connect(address)
     #except socket.error, err:
     #    if err[0]==54: # "connection refused"
     #        if _s60_UI:
     #            appuifw.note(u'Connection refused.','error')
     #        else:
     #            print "Connection refused."
     #        return None
     #    raise
     print "OK."
コード例 #2
0
ファイル: robot.py プロジェクト: Jufino/PyTerminalRobot
def pripoj():
  global s
  s = btsocket.socket(btsocket.AF_INET, btsocket.SOCK_STREAM)
  #ip = query(u"Vloz ip adresu", "text")
  ip = "192.168.1.109"
  s.connect((ip,1213))
  note(u"pripojene","info")
コード例 #3
0
    def connect(self):
        self.sock=btsocket.socket(btsocket.AF_BT,btsocket.SOCK_STREAM)
	btsocket.set_default_access_point(btsocket.access_point(btsocket.select_access_point()))
        addr,services=btsocket.bt_discover()
        print "Discovered: %s, %s"%(addr,services)
        if len(services)>0:
            import appuifw
            choices=services.keys()
            choices.sort()
            choice=appuifw.popup_menu([unicode(services[x])+": "+x
                                       for x in choices],u'Choose port:')
            port=services[choices[choice]]
        else:
            port=1
        address=(addr,port)
        print "Connecting to "+str(address)+"...",
        self.sock.connect(address)
        #except socket.error, err:
        #    if err[0]==54: # "connection refused"
        #        if _s60_UI:
        #            appuifw.note(u'Connection refused.','error')
        #        else:
        #            print "Connection refused."
        #        return None
        #    raise
        print "OK." 
コード例 #4
0
ファイル: communications.py プロジェクト: 0x0all/smsconsole
	def startService(self):
		"""Initiates the bluetooth sockets and listen for a connection"""
		
		self.serverSocket = bt.socket(bt.AF_BT,bt.SOCK_STREAM)
		
		#Gets a free channel for communication
		self.channel = bt.bt_rfcomm_get_available_server_channel(self.serverSocket)
		
		#Binds the socket to that channel and listen for connection
		self.serverSocket.bind(("",self.channel))
		bt.bt_advertise_service( self.serviceName,
                              self.serverSocket,
		                      True,
		                      bt.RFCOMM )
		
		bt.set_security(self.serverSocket, bt.AUTHOR | bt.AUTH )
		self.serverSocket.listen(1)
		
		#Forking into the background
		appswitch.switch_to_fg(u'PythonScriptShell')
		ui.note(u"SmsConsole: Waiting for connections","info")
		appswitch.switch_to_bg(u'PythonScriptShell')
		
		self.clientConn,self.clientAddr = self.serverSocket.accept()
		
		appswitch.switch_to_fg(u'PythonScriptShell')
		ui.note(u"Client %s Connected" % (self.clientAddr), "info")
		appswitch.switch_to_bg(u'PythonScriptShell')
コード例 #5
0
    def getBTTransport(self):
        if sys.platform == 'symbian_s60': 
            import btsocket
            sock=btsocket.socket(btsocket.AF_BT,btsocket.SOCK_STREAM)
            addr,services=btsocket.bt_discover()
            if len(services)>0:
                port = services[u'opencoin']
            else:
                port=services[services.keys()[0]]
            address=(addr,port)
            sock.connect(address)
        else:
            import bluetooth as bt
            #evil hack
            appuifw.note(u'Searching for devices','info')
            results = [r for r in bt.find_service() if r['name']==None]
            targets = []
            for result in results:
                targets.append(u'%s' % (bt.lookup_name(result['host'])))
            selected = appuifw.popup_menu(targets,u'Connect to...?')
            
            host = results[selected]['host']
            #port = results[selected]['port']
            port = 3
            print 'host: %s, port: %s' % (host,port)
            sock=bt.BluetoothSocket( bt.RFCOMM )
            sock.connect((host, port))

            



        return transports.BTTransport(sock)
コード例 #6
0
ファイル: a.py プロジェクト: Symbian9/rssagk
def wget(url,ap_id=None):
    '''Downloads a web resource with the HTTP protocol
    and returns the result
    
    ap_id is the access point to use.
    If it is None, the user will be prompted'''
    
    if not url.startswith('http://'):
        return None
    
    #Remove protocol part
    url=url[7:]
    
    #split GET and domain
    t=url.split('/',1)
    
    m=t[0].split(':',1)
    if len(m)==1:
        host=m[0]
        port=80
    else:
        host=m[0]
        try:
            port=int(m[1])
        except:
            port=80
    
    if len(t)>1:
        get='/' + t[1]
    else:
        get='/'
        
    hname=host
    if port!=80:
        hname+=":%d" % port
    
    #Download the file
    sock = btsocket.socket(btsocket.AF_INET,btsocket.SOCK_STREAM)

    sock.connect((host,port))
    sock.send("GET %s HTTP/1.1\r\nConnection: close\r\nHost: %s\r\nUser-Agent: RSS-agk\r\n\r\n" % (get,hname))
    
    data=''
    while True:
        r=sock.read(4000)
        if len(r)==0:
            break
        data+=r
    
    sock.close()

    #TODO Server didn't return ok
    if data[9:12]!='200':
        appuifw.note(u'Server returned %s instead of 200' % data[9:12], "info")
        return None
    
    return data.split('\r\n\r\n',1)[1]
コード例 #7
0
def chat_client():
    conn = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
    address, services = btsocket.bt_discover()
    if 'btchat' in services:
        channel = services[u'btchat']
        conn.connect((address, channel))
        print "Connected to server!"
        talk(None, conn)
    else:
        appuifw.note(u"Target is not running a btchat server", "error")
def start_serving(host, port): 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.bind((host,port)) 
    s.listen(1) 
    while 1: 
        try: 
            conn, addr = s.accept() 
            Shell(conn, addr).run() 
        except KeyboardInterrupt: 
            s.close() 
            raise SystemExit 
コード例 #9
0
def chat_server():
    server = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
    channel = btsocket.bt_rfcomm_get_available_server_channel(server)
    server.bind(("", channel))
    server.listen(1)
    btsocket.bt_advertise_service(u"btchat", server, True, btsocket.RFCOMM)
    btsocket.set_security(server, btsocket.AUTH | btsocket.AUTHOR)
    print "Waiting for clients..."
    conn, client_addr = server.accept()
    print "Client connected!"
    talk(conn, None)
def start_serving(host, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    s.listen(1)
    while 1:
        try:
            conn, addr = s.accept()
            Shell(conn, addr).run()
        except KeyboardInterrupt:
            s.close()
            raise SystemExit
コード例 #11
0
ファイル: mobile.py プロジェクト: Wonfee/series60-remote
    def startService(self):
        self.service = True
        self.statusUpdate()

        self.sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
        self.sock.bind(('', PORT))
        self.sock.listen(1)

        socket.set_security(self.sock,  socket.AUTH | socket.AUTHOR)
        socket.bt_advertise_service(u"pys60_remote", self.sock, True, socket.RFCOMM)

        self.listen()
コード例 #12
0
ファイル: btclient.py プロジェクト: danielfm/pytriloquist
 def connect(self):
     """Connects to the server.
     """
     try:
         if not self.is_connected():
             server_addr = self.app.get_settings()[:2]
             self.socket = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
             self.socket.setblocking(False)
             self.socket.connect(server_addr)
     except:
         self.close()
         raise BluetoothError(_(u"Cannot connect."))
コード例 #13
0
    def startService(self):
        self.service = True
        self.statusUpdate()

        self.sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
        self.sock.bind(('', PORT))
        self.sock.listen(1)

        socket.set_security(self.sock, socket.AUTH | socket.AUTHOR)
        socket.bt_advertise_service(u"pys60_remote", self.sock, True,
                                    socket.RFCOMM)

        self.listen()
コード例 #14
0
    def startService(self):
        self.service = True
        self.statusUpdate()

        self.sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
        self.sock.bind(("", self.port))
        self.sock.listen(1)

        socket.set_security(self.sock, socket.AUTH | socket.AUTHOR)
        socket.bt_advertise_service("pys60_remote", self.sock, True,
                                    socket.RFCOMM)
        note("Listenning on port %d" % self.port)

        self.listen()
コード例 #15
0
 def test_bt_server(self):
     server_socket = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
     port = btsocket.bt_rfcomm_get_available_server_channel(server_socket)
     server_socket.bind(("", port))
     server_socket.listen(1)
     btsocket.bt_advertise_service(u"port1", server_socket, True,
                                   btsocket.RFCOMM)
     btsocket.bt_advertise_service(u"port1", server_socket, False,
                                   btsocket.RFCOMM)
     btsocket.bt_advertise_service(u"port2", server_socket, True,
                                   btsocket.OBEX)
     btsocket.bt_advertise_service(u"port2", server_socket, False,
                                   btsocket.OBEX)
     btsocket.set_security(server_socket, (btsocket.AUTH |
                           btsocket.ENCRYPT | btsocket.AUTHOR))
     server_socket.close()
コード例 #16
0
def connect(): #this function sets up the BT socket connection
    global btsocket, target

    try:
         #socket params passed to the OS
        btsocket=socket.socket(socket.AF_BT,socket.SOCK_STREAM)

        if target == '': #if no target defined, begin OS discovery routine
            address,services = socket.bt_discover()
            target = (address, services.values()[0])

        btsocket.connect(target) #initiate connection and notify user
        appuifw.note(u"Connected to " + str(address), "info")

    except: #fail cleanly
        appuifw.note(u"Error connecting to device")
        btsocket.close()
コード例 #17
0
def bt_povezi():
    global sock
    sock = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
    target = ""
    address, services = btsocket.bt_discover()
    if len(services) > 1:
        import appuifw

        choices = services.keys()
        choices.sort()
        choice = appuifw.popup_menu([unicode(services[x]) + ": " + x for x in choices], u"Choose port:")
        target = (address, services[choices[choice]])
    else:
        target = (address, services.values()[0])
    print "Povezujem..." + str(target)
    sock.connect(target)
    print "OK."
コード例 #18
0
ファイル: skupaj_mairm-client.py プロジェクト: mjakop/mairm
 def bt_connect(self):
   try:
     target = ''
     (address, services) = btsocket.bt_discover()
     choices = services.keys()
     choices.sort()
     choice = appuifw.popup_menu([unicode(services[x]) + ": " + x for x in choices], u'Choose port:')
     target = (address, services[choices[choice]])
 
     self.sock = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
     self.sock.connect(target)
     return True
   except:
     if self.sock:
       del self.sock
     appuifw.note(u'Failed to connect', 'error')
     return False
コード例 #19
0
def test(target):
    import btsocket as socket
    import e32
    # Bluetooth connection
    sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)

    print "Connecting to " + str(target) + "...",
    sock.connect((target, 1))
    print "OK."
    r = Robot(sock)
    r.forward()
    e32.ao_sleep(2)
    r.backward()
    e32.ao_sleep(2)
    r.left()
    e32.ao_sleep(2)
    r.right()
    e32.ao_sleep(2)
    r.stop()
    return r
コード例 #20
0
    def receiveCoinsBT(self,transport):
        if sys.platform == 'symbian_s60':
            import btsocket
            server_socket = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
            #port = btsocket.bt_rfcomm_get_available_server_channel(server_socket)
            #server_socket.bind(("", port))
            server_socket.bind(("", 3))
            server_socket.listen(1)
            btsocket.bt_advertise_service( u"opencoin", server_socket, True, btsocket.RFCOMM)
            btsocket.set_security(server_socket, btsocket.AUTH)
            self.feedback(u'Receive coins: ready to receive...')
            (sock,peer_addr) = server_socket.accept()

        else:
            import bluetooth as bt
            server_sock=bt.BluetoothSocket(bt.RFCOMM)
            #server_sock.bind(("",bt.PORT_ANY))
            server_sock.bind(("",3))
            server_sock.listen(1)
            port = server_sock.getsockname()[1]

            uuid = "9e72d9d8-e06d-41cb-bbd4-89cd052cccb8"
            bt.advertise_service( server_sock, u"opencoin",
                   service_id = uuid,
                   service_classes = [ uuid, bt.SERIAL_PORT_CLASS ],
                   profiles = [ bt.SERIAL_PORT_PROFILE ] )
 
            #bt.advertise_service( server_sock, u"opencoin",)
                               
            self.feedback(u'Receive coins: ready to receive...')
            sock, client_info = server_sock.accept()

        bt = transports.BTTransport(sock)
        self.wallet.getApproval = self.getApproval 
        bt.send(self.wallet.listenSum(bt.receive()))
        self.feedback(u'Receive coins: receiving...')
        bt.send(self.wallet.listenSpend(transport,bt.receive()))
        import e32
        e32.ao_sleep(1)    
コード例 #21
0
ファイル: dict.py プロジェクト: Symbian9/rssagk
def wget(url,ap_id=None):

    #Download the file
    sock = btsocket.socket(btsocket.AF_INET,btsocket.SOCK_STREAM)

    sock.connect((host,port))
    sock.send("GET %s HTTP/1.1\r\nConnection: close\r\nHost: %s\r\nUser-Agent: RSS-agk\r\n\r\n" % (get,hname))
    
    data=''
    while True:
        r=sock.read(4000)
        if len(r)==0:
            break
        data+=r
    
    sock.close()

    #TODO Server didn't return ok
    if data[9:12]!='200':
        appuifw.note(u'Server returned %s instead of 200' % data[9:12], "info")
        return None
    
    return data.split('\r\n\r\n',1)[1]
コード例 #22
0
ファイル: btconsole.py プロジェクト: pymo/pymo
def connect(address=None):
    """Form an RFCOMM socket connection to the given address. If
    address is not given or None, query the user where to connect. The
    user is given an option to save the discovered host address and
    port to a configuration file so that connection can be done
    without discovery in the future.

    Return value: opened Bluetooth socket or None if the user cancels
    the connection.
    """
    
    # Bluetooth connection
    sock=socket.socket(socket.AF_BT,socket.SOCK_STREAM)

    if not address:
        CONFIG_DIR='c:/system/apps/python'
        CONFIG_FILE=os.path.join(CONFIG_DIR,'btconsole_conf.txt')
        try:
            f=open(CONFIG_FILE,'rt')
            try:
                config=eval(f.read())
            finally:
                f.close()
        except:
            config={}
    
        address=config.get('default_target','')
    
        if address:
            if _s60_UI:
                choice=appuifw.popup_menu([u'Default host',
                                           u'Other...'],u'Connect to:')
                if choice==1:
                    address=None
                if choice==None:
                    return None # popup menu was cancelled.
            else:
                sel=raw_input("Connect to default host? y/n[y]:")
                if sel and 'y' != sel and 'Y' != sel:
                    address=None

        if not address:
            print "Discovering..."
            try:
                addr,services=socket.bt_discover()
            except socket.error, err:
                if err[0]==2: # "no such file or directory"
                    if _s60_UI:
                        appuifw.note(u'No serial ports found.','error')
                    else:
                        print "No serial ports found."
                elif err[0]==4: # "interrupted system call"
                    print "Cancelled by user."
                elif err[0]==13: # "permission denied"
                    print "Discovery failed: permission denied."
                else:
                    raise
                return None
            print "Discovered: %s, %s"%(addr,services)
            if len(services)>1:
                choices=services.keys()
                choices.sort()
                if _s60_UI:
                    choice=appuifw.popup_menu([unicode(services[x])+": "+x
                                           for x in choices],u'Choose port:')
                    port=services[choices[choice]]
                else:
                    index=0
                    for item in choices:
                        print "%d -> %s" %(index,item)
                        index+=1
                    choice=raw_input("Choose port: ")
                    try:
                        port=services[choices[int(choice)]]
                    except:
                        print "Invalid input."
                        return None
            else:
                port=services[services.keys()[0]]
            address=(addr,port)
            if _s60_UI:
                choice=appuifw.query(u'Set as default?','query')
            else:
                choice=False
                sel=raw_input("Set as default? y/n[y]:")
                if not sel or 'y' == sel or 'Y' == sel:
                    choice=True

            if choice:
                config['default_target']=address
                # make sure the configuration file exists.
                if not os.path.isdir(CONFIG_DIR):
                    os.makedirs(CONFIG_DIR)
                f=open(CONFIG_FILE,'wt')
                f.write(repr(config))
                f.close()
コード例 #23
0
 def __init__(self):
     self.pcMac = '00:1F:E2:F2:9F:5E'
     self.client_socket=socket.socket(socket.AF_BT,socket.SOCK_STREAM)
コード例 #24
0
                channels.append(channel)
        index = appuifw.popup_menu(names, u"Choose service")
        return channels[index]

def read_and_echo(fd):
        buf = r = ""
        while r != "\n" and r != "\r":
                r = fd.read(1)
                if ECHO: fd.write(r)
                buf += r
        if ECHO: fd.write("\n")
        return buf

address, services = btsocket.bt_discover()
channel = choose_service(services)
conn = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
conn.connect((address, channel))
to_peer = conn.makefile("rw", 0)

while True:
        msg = appuifw.query(u"Send a message", "text")
        if msg:
                print >> to_peer, msg + "\r"
                print "Sending: " + msg
                print "Waiting for reply..."
                reply = read_and_echo(to_peer).strip()
                appuifw.note(unicode(reply), "info")
                if reply.find("bye!") != -1:
                        break
        else:
                break
コード例 #25
0
	def connect(self):
		global sock
		arduino_addr='00:19:a4:02:44:2a'   #add your arduino BT adress here
		sock=socket.socket(socket.AF_BT, socket.SOCK_STREAM)
		target=(arduino_addr,1) # serial connection to arduino BT
		sock.connect(target)
コード例 #26
0
 def connect(self):
     global sock
     arduino_addr = '00:19:a4:02:44:2a'  #add your arduino BT adress here
     sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
     target = (arduino_addr, 1)  # serial connection to arduino BT
     sock.connect(target)
コード例 #27
0
ファイル: btconsole.py プロジェクト: zixing131/pymo
def connect(address=None):
    """Form an RFCOMM socket connection to the given address. If
    address is not given or None, query the user where to connect. The
    user is given an option to save the discovered host address and
    port to a configuration file so that connection can be done
    without discovery in the future.

    Return value: opened Bluetooth socket or None if the user cancels
    the connection.
    """

    # Bluetooth connection
    sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)

    if not address:
        CONFIG_DIR = 'c:/system/apps/python'
        CONFIG_FILE = os.path.join(CONFIG_DIR, 'btconsole_conf.txt')
        try:
            f = open(CONFIG_FILE, 'rt')
            try:
                config = eval(f.read())
            finally:
                f.close()
        except:
            config = {}

        address = config.get('default_target', '')

        if address:
            if _s60_UI:
                choice = appuifw.popup_menu([u'Default host', u'Other...'],
                                            u'Connect to:')
                if choice == 1:
                    address = None
                if choice == None:
                    return None  # popup menu was cancelled.
            else:
                sel = raw_input("Connect to default host? y/n[y]:")
                if sel and 'y' != sel and 'Y' != sel:
                    address = None

        if not address:
            print "Discovering..."
            try:
                addr, services = socket.bt_discover()
            except socket.error, err:
                if err[0] == 2:  # "no such file or directory"
                    if _s60_UI:
                        appuifw.note(u'No serial ports found.', 'error')
                    else:
                        print "No serial ports found."
                elif err[0] == 4:  # "interrupted system call"
                    print "Cancelled by user."
                elif err[0] == 13:  # "permission denied"
                    print "Discovery failed: permission denied."
                else:
                    raise
                return None
            print "Discovered: %s, %s" % (addr, services)
            if len(services) > 1:
                choices = services.keys()
                choices.sort()
                if _s60_UI:
                    choice = appuifw.popup_menu(
                        [unicode(services[x]) + ": " + x for x in choices],
                        u'Choose port:')
                    port = services[choices[choice]]
                else:
                    index = 0
                    for item in choices:
                        print "%d -> %s" % (index, item)
                        index += 1
                    choice = raw_input("Choose port: ")
                    try:
                        port = services[choices[int(choice)]]
                    except:
                        print "Invalid input."
                        return None
            else:
                port = services[services.keys()[0]]
            address = (addr, port)
            if _s60_UI:
                choice = appuifw.query(u'Set as default?', 'query')
            else:
                choice = False
                sel = raw_input("Set as default? y/n[y]:")
                if not sel or 'y' == sel or 'Y' == sel:
                    choice = True

            if choice:
                config['default_target'] = address
                # make sure the configuration file exists.
                if not os.path.isdir(CONFIG_DIR):
                    os.makedirs(CONFIG_DIR)
                f = open(CONFIG_FILE, 'wt')
                f.write(repr(config))
                f.close()
コード例 #28
0
ファイル: phone_imap.py プロジェクト: guancio/MobiMS
            if sms["MessageType"] == "SMS":
                res.append(sms)
        return res

    def __getMessage(self, msg_id):
        if not self.__selectedFolder == "INBOX":
            print "Folder %s not supported" % folder["path"]
            return []
        sms_iter = messaging_handle.call("GetList", {"Type": u"Inbox", "Filter": {"MessageId": msg_id}})
        res = [sms for sms in sms_iter]
        if len(res) == 0:
            return None
        return res[0]


s = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
port = btsocket.bt_rfcomm_get_available_server_channel(s)
s.bind(("", port))
print port
btsocket.set_security(s, btsocket.AUTH)
s.listen(1)

# HOST = ''                 # Symbolic name meaning all available interfaces
# PORT = 14310
# s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# s.bind((HOST, PORT))
# s.listen(1)

running = True
while running:
    conn, addr = s.accept()