Package: gurux-net
See AnGuruxfor an overview.Join the Gurux Community or follow@Guruxfor project updates.With gurux.net component you can send data easily syncronously or asyncronously using TCP or UDP connection.Open Source GXNet media component, made by Gurux Ltd, is a part of GXMedias set of media components, which programming interfaces help you implement communication by chosen connection type. Gurux media components also support the following connection types: serial port.For more info check outGurux.We are updating documentation on Gurux web page.If you have problems you can ask your questions in GuruxForum.You can get source codes fromhttp://www.github.com/guruxor intall package:pipinstallgurux-commonpipinstallgurux-netSimple exampleBefore use you must set following settings:HostNamePortProtocolIt is also good to add listener to listen following events.onErroronReceivedonMediaStateChangeand if in server mode following events might be important.onClientConnectedonClientDisconnectedimporttimefromgurux_commonimportReceiveParametersfromgurux_commonimportIGXMediaListenerfromgurux_common.enums.TraceLevelimportTraceLevelfromgurux_netimportGXNetfromgurux_net.enumsimportNetworkType# ---------------------------------------------------------------------------# This example sends data to the server and waits reply.# ---------------------------------------------------------------------------#pylint: disable=no-self-argumentclasssampleclient(IGXMediaListener):def__init__(self):#Define End Of Packet char.eop='\r'#Make connection using TCP/IP to localhost.media=GXNet(NetworkType.TCP,"localhost",0)#Start to listen events from the media.media.addListener(self)#Update port to demonstrate onPropertyChanged event.media.port=1000#Show all traces. In default traces are not sent.media.trace=TraceLevel.VERBOSE#Set EOP for the media.media.eop=eoptry:#Open the connection.media.open()r=ReceiveParameters()r.eop=eopr.count=5#Wait reply for 2 seconds.r.waitTime=2000#############################Send data synchronously.withmedia.getSynchronous():media.send("Hello world!")#Send EOPmedia.send('\r')ret=media.receive(r)ifret:print(str(r.reply.decode("ascii")))else:raiseException("Failed to receive reply from the server.")#############################Send async data.media.send("Server !\r")#Wait 1 second to receive reply from the server.time.sleep(1)exceptExceptionasex:print(ex)media.close()media.removeListener(self)defonError(self,sender,ex):"""Represents the method that will handle the error event of a Guruxcomponent.sender :  The source of the event.ex : An Exception object that contains the event data."""print("Error has occured. "+str(ex))defonReceived(self,sender,e):"""Media component sends received data through this method.sender : The source of the event.e : Event arguments."""print("New data is received. "+str(e))defonMediaStateChange(self,sender,e):"""Media component sends notification, when its state changes.sender : The source of the event.e : Event arguments."""print("Media state changed. "+str(e))defonTrace(self,sender,e):"""Called when the Media is sending or receiving data.sender : The source of the event.e : Event arguments."""print("trace:"+str(e))defonPropertyChanged(self,sender,e):"""Event is raised when a property is changed on a component.sender : The source of the event.e : Event arguments."""print("Property{!r}has hanged.".format(str(e)))if__name__=='__main__':sampleclient()