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

Reply via email to