geekcomputers / geekcomputers/Python

Python socket server not able to listen ESL LUA COMMAND

Ouverte
#319 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
35.4k
Forks
12.9k
Merge moyen
2 h 37 min
PR mergées (30 j)
1

Description

I have created 1 python server which listens on port eg 1234 and lua scripts connects to it . Connection is establishing but not able to send any data to python server. it works well if tried with simple tcp python client .

python server :
"""

import SocketServer
import esl

    class ESLRequestHandler(SocketServer.BaseRequestHandler):
        def setup(self):
            print self.client_address, 'connected!'

            fd = self.request.fileno()
        print fd

        con = esl.ESLconnection(fd)
        print 'Connected: ', con.connected()
        if con.connected():

            info = con.getInfo()

            uuid = info.getHeader("unique-id")
            print uuid
            con.execute("answer", "", uuid)
            con.execute("playback", "/ram/swimp.raw", uuid);

# server host is a tuple ('host', port)
server = SocketServer.ThreadingTCPServer(('localhost', 1234), ESLRequestHandler)
server.serve_forever()



"""
# first of all import the socket library
import socket

# next create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Socket successfully created"

# reserve a port on your computer in our
# case it is 12345 but it can be anything
port = 1

# Next bind to the port
# we have not typed any ip in the ip field
# instead we have inputted an empty string
# this makes the server listen to requests
# coming from other computers on the network
s.bind(('127.0.0.1', port))
print "socket binded to %s" %(port)

# put the socket into listening mode
s.listen(5)
print "socket is listening"

# a forever loop until we interrupt it or
# an error occurs

   # Establish connection with client.
c, addr = s.accept()
print 'Got connection from', addr

   # send a thank you message to the client.
   #c.send('Thank you for connecting')


while True:
   d=c.recv(1024)
   print
   print d
   if d == "Status":
       c.send("Hey client")
   elif d == "c":
       c.send("letter c")
   elif d == "e":
       c.close()
   else :
       c.send("no data found")
   # Close the connection with the client
   #c.close()

Lua ESl script :
enter code here

#!/usr/local/bin/lua
require("ESL")

--local command = arg[1];
--table.remove(arg, 1);
--local args = table.concat(arg, " ");

local con = ESL.ESLconnection("localhost", "1234", "ClueCon")

--while con:connected() do

--end

con:send("event plain HEARTBEAT ");
local a = con:recvEvent()
print(a)
--con:sendRecv("event plain HEARTBEAT ")

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par comparer le handler Python SocketServer et l’appel Lua ESL.ESLconnection, puis suivez le flux de connexion et d’envoi/réception présenté dans l’issue. Reproduisez le listener sur les ports localhost indiqués et déterminez pourquoi la commande Lua ne transmet pas de données au serveur Python ; le travail est terminé lorsque le serveur reçoit la commande et répond comme prévu.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
lua, python
Domaine
networking
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.