server socket help needed
#1
Hi,

Im new to python/kodi i have this main.py code where i creat a "server socket" to get some data from a external app.
My main problem is to send data (conn.send("xxx")) from main.py ("server socket") to the external app from a script or some thing else triggered by a button at Home.xml (<onclick>RunScript("special://skin/scripts/xxxxx.py")</onclick>).

Please give me a hand on this, many thanks

Cam

Code:
# -*- coding: utf-8 -*-

"""

mod time lable

"""

import os
import datetime
import threading
import time
import sys
from traceback import print_exc
import re

try:
    import xbmc
    import xbmcgui
    import xbmcplugin
except:
    pass

import socket

class SecThread (threading.Thread):
    def __init__(self, threadID, sleeptime, sock=None):
        self.threadID = threadID
        self.sleeptime = sleeptime
        threading.Thread.__init__(self)
        self.secst = 1
        self.cc = 1
        self.loop = 1
    
    def run(self):
        
        try:
            HOST = ''     # It means the local host
            PORT = 5000 # the port port
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.bind((HOST, PORT))
            #s.close()
            s.listen(12)
        except:
            pass
        while self.loop ==1:
            
            try:
                conn, addr = s.accept()
            except:
                paulo6 = ( xbmcgui.Window( 10000 ).getProperty( 'sec.conn' ) )
                paulo6 = "except"
                xbmcgui.Window( 10000 ).setProperty( 'sec.conn', paulo6 )
            
            try:
                data = conn.recv(1024)
                #conn.send(data)
            except:
                hhhh = ( xbmcgui.Window( 10000 ).getProperty( 'sec.data' ) )
                hhhh = "except"
                xbmcgui.Window( 10000 ).setProperty( 'sec.data', hhhh )
            
            counter = int( xbmcgui.Window( 10000 ).getProperty( 'sec.counter' ) )
            counter += 1
            xbmcgui.Window( 10000 ).setProperty( 'sec.counter' , str(counter) )
        
            # pc
            try:
                f = open("C:\kodi_camolas\sec.txt", "r")
            except:
                pass
            
            # phone
            try:
                f = open ("/sdcard/Android/data/org.xbmc.kodi/files/.kodi/addons/skin.Camolas/scripts/sec.ini", "r")
            except:
                pass
                
            # tablet
            try:
                f = open ("/storage/sdcard1/Link2SD/bind/data/org.xbmc.kodi/files/.kodi/addons/skin.Camolas/scripts/sec.ini", "r")
            except:
                pass
            
            try:
                f_array = []
                for line in f:
                    f_array.append(line.strip("\n"))
                f.close()
                sec_string =(str(f_array[0]))
                fc_string =(str(f_array[1]))
                
                if data == "azs":
                    paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.sec' ) )
                    paulo = "OFhhjF"
                    xbmcgui.Window( 10000 ).setProperty( 'sec.sec', paulo )
                    #conn.send("sec")
                
                elif data == "12":
                    paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.sec' ) )
                    paulo = "ON"
                    xbmcgui.Window( 10000 ).setProperty( 'sec.sec', paulo )
                
                if fc_string == '0':
                    paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc' ) )
                    paulo = "ABERTO"
                    xbmcgui.Window( 10000 ).setProperty( 'sec.fc', paulo )
                    
                    paulo2 = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc_img' ) )
                    paulo2 = "120.png"
                    xbmcgui.Window( 10000 ).setProperty( 'sec.fc_img', paulo2 )
                
                elif fc_string == '1':
                    paulo1 = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc' ) )
                    paulo1 = "FECHADO"
                    xbmcgui.Window( 10000 ).setProperty( 'sec.fc', paulo1 )
                
                else:
                    paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc' ) )
                    paulo = erro_fc.png
                    xbmcgui.Window( 10000 ).setProperty( 'sec.fc', paulo )
                
                """
                elif sec_string[0] == "?":
                    xbmc.executebuiltin('XBMC.RunScript(/sdcard/Android/data/org.xbmc.kodi/files/.kodi/addons/skin.Camolas/scripts/close_kodi.py)')
                """
            except:
                pass
            
            #time.sleep(3)

HomeWindow = xbmcgui.Window( 10000 )
HomeWindow.setProperty( 'sec.counter' , str(0) )
HomeWindow.setProperty( 'sec.fc' , str(0) )
HomeWindow.setProperty( 'sec.fc_img' , str(0) )
HomeWindow.setProperty( 'sec.sec' , str(0) )
pollingthread = SecThread(0, 2)
pollingthread.start()
Reply

Logout Mark Read Team Forum Stats Members Help
server socket help needed0