Hi,
I found this 
https://github.com/TakeshiTseng/SDN-Work/blob/master/MultiControl/ms/MasterApp.py
This script creates a RYU application and a TCP server
I didn't try this script, hope it can help.
Thanks.

Zhao Jun

> From: [email protected]
> To: [email protected]
> Date: Thu, 10 Mar 2016 20:54:42 +0000
> Subject: [Ryu-devel] How to let a RYU application to support a permanent      
> socket server
> 
> 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=278785231&iu=/4140
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to