Hi
Look at this example
<https://sourceforge.net/p/ryu/mailman/ryu-devel/thread/[email protected]/#msg34758419>
.
It was suggested by Iwase. I used it to trigger & catch event and it is
very useful.
Hope it helps ...
Kind regards
2016-03-10 12:54 GMT-08:00 Weiyang Mo <[email protected]>:
> Hi all,
>
> I am trying to design a ryu module that plays as a permanent server to
> exchange data with a external web. After receiving some data, I would like
> to let this module to send RYU events to other modules as notification. Now
> I am stuck in that because although I successfully built the server and can
> receive information from web client, I am not able to communicate with
> other RYU applications.
>
>
> class MyTCPHandler(SocketServer.BaseRequestHandler,app_manager.RyuApp):
> """
> The RequestHandler class for our server.
>
> It is instantiated once per connection to the server, and must
> override the handle() method to implement communication to the
> client.
> """
> def __init__(self, *args, **kwargs):
> """Call the base RyuApp __init__"""
> app_manager.RyuApp.__init__(self,*args, **kwargs)
> SocketServer.BaseRequestHandler.__init__(self,*args, **kwargs)
>
> def handle(self):
> # self.request is the TCP socket connected to the client
> self.data = self.request.recv(1024).strip()
> #print "{} wrote:".format(self.client_address[0])
> print "Receive from web portal"
> print self.data
> time.sleep(5)
> ev = custom_event.RequestEvent()
> ev.src = None
> ev.dst = 'ManagerRole'
> ev.sync = True
> ev.reply_q = None
> print 'Sent event request and wait reply'
> self.send_request(ev)
> print 'I got reply'
> self.request.sendall('Yes, I send you back')
>
> HOST, PORT = "192.168.56.101", 6633
> print 'start server'
> ### Create the server, binding to localhost on port 9999
> server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
> ### Activate the server; this will keep running until you
> ### interrupt the program with Ctrl-C
> server.serve_forever()
> ##threading.Thread(target=server.serve_forever).start()
>
> And here is what I received if the client sends a string 'Hello'
>
> loading app ryu/OS/no.py
> start server
> Receive from web portal
> Hello
> Sent event request and wait reply
>
> It is apparent that the information: instantiating app ryu/OS/no.py of
> MyTCPHandler is missing so I guess the RYU does not load the class at all.
> It maybe related to that the TCP server thread blocks the RYU thread? Can
> anyone help me on that?
>
> Thanks.
>
> Weiyang
>
>
>
> ------------------------------------------------------------------------------
> Transform Data into Opportunity.
> Accelerate data analysis in your applications with
> Intel Data Analytics Acceleration Library.
> Click to learn more.
> http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel