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