android mobile socket open
Question: Why Socket can be open on the android emulator and connect to the python
server code and open a socket !! In other Hand When i run same android code on
the mobile it doesn't run . didnt open a socket ..Any suggestion what is the
problem and how to solve such thing

    
    
    enter code here
    import sys
    from threading import Thread
    import socket
    import MySQLdb
    
    allClients=[]
    
     class Client(Thread):
    
    def __init__(self,clientSocket):
                Thread.__init__(self)
                self.sockfd = clientSocket #socket client
                self.name = ""
                self.nickName = ""
    
    def newClientConnect(self):
    
      allClients.append(self.sockfd)
      while True:
    
    
            while True:
    
                try:
                     rm= self.sockfd.recv(2048)
                     print rm
                     i=0
    
                     while (i<2):
    
                        if   (rm) == row[i][0]:                   
                            reply="\n Welcome to our game %s: %s"%(rm,row[i][1])
                            self.sockfd.send(reply)
                            break
    
                        else:
    
                            i=i+1
                        if i==2:
                            reply="\n Error opaa ba2a"
                            self.sockfd.send(reply)
                            i=0
                            break
                     break
    
                except ValueError:
                       self.sockfd.send("\n UNVAlied Comment ")
    
    
    def run(self):
                self.newClientConnect()
                while True:
                        buff = self.sockfd.recv(2048)
                        if buff.strip() == 'quit':
                             self.sockfd.close()
                             break # Exit when break
                        else:
                             self.sendAll(buff)
                       #Main
                if __name__ == "__main__":
    
              #Server Connection to socket:
                 IP = '50.0.10.107'
              PORT = 5807
             serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            serversocket.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 )
                print ("Server Started")
            try:
        serversocket.bind(('',54633))
    except ValueError,e:
        print e
    serversocket.listen(5)
    
    
    db= MySQLdb.connect(host= "localhost",
                  user="root",
                  passwd="newpassword",
                  db="new_schema")
    
    
         x=db.cursor()
         x.execute("SELECT *  FROM lolo")
          row = x.fetchall()
    
    
            print "Connected to the Database"
    
    
            while True:
        (clientSocket, address) = serversocket.accept()
        print 'New connection from ', address
        ct = Client(clientSocket)
        ct.start()
    
    
    
    
        __all__ = ['allClients','Client']
    

The python code and the server code it map and button when click on button
connection start and it work great on the emulator


Answer: Could be a number of thing:

  1. You don't have networking permissions enabled in your manifest file
  2. Your wifi / 3G is disabled
  3. If your server is on your personal computer and you're connected to the internet using a router then you need to redirect the port you're using for socket communication from the router to your machine. 

