geekcomputers / geekcomputers/Python

Python socket server not able to listen ESL LUA COMMAND

Đang mở
#319 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Python
Star
35.4k
Fork
12.9k
Merge trung bình
2 giờ 37 phút
Pull request đã merge (30 ngày)
1

Mô tả

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 ")

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách so sánh handler Python SocketServer và lệnh gọi Lua ESL.ESLconnection, sau đó lần theo luồng kết nối và gửi/nhận được thể hiện trong issue. Tái tạo listener trên các cổng localhost đã nêu và xác định lý do lệnh Lua không truyền dữ liệu đến máy chủ Python; hoàn tất khi máy chủ nhận được lệnh và phản hồi như mong đợi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
lua, python
Lĩnh vực
networking
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.