be transferred over socketstooby shipping the serialized byte strings produced by python' pickle module introduced in and covered in full in as we'll see in the printed output of simple script can be redirected to gui windowby connecting the script' output stream to socket on which gui is listening in nonblocking mode programs that fetch arbitrary text off the web might read it as byte strings over socketsbut manually decode it using encoding names embedded in content-type headers or tags in the data itself in factthe entire internet can be seen as socket use case--as we'll see in at the bottomemailftpand web pages are largely just formatted byte string messages shipped over sockets plus any other context in which programs exchange data--sockets are generalportableand flexible tool for instancethey would provide the same utility as fifos for the gui/debugger example used earlierbut would also work in python on windows and would even allow the gui to connect to debugger running on different computer altogether as suchthey are seen by many as more powerful ipc tool againyou should consider this section just previewbecause the grander socket story also entails networking conceptswe'll defer more in-depth look at the socket api until we'll also see sockets again briefly in in the gui stream redirection use case listed aboveand we'll explore variety of additional socket use cases in the internet part of this book in part ivfor instancewe'll use sockets to transfer entire files and write more robust socket servers that spawn threads or processes to converse with clients to avoid denying connections for the purposes of this let' move on to one last traditional ipc tool--the signal signals for lack of better analogysignals are way to poke stick at process programs generate signals to trigger handler for that signal in another process the operating system pokestoo--some signals are generated on unusual system events and may kill the program if not handled if this sounds little like raising exceptions in pythonit shouldsignals are software-generated events and the cross-process analog of exceptions unlike exceptionsthoughsignals are identified by numberare not stackedand are really an asynchronous event mechanism outside the scope of the python interpreter controlled by the operating system in order to make signals available to scriptspython provides signal module that allows python programs to register python functions as handlers for signal events this module is available on both unix-like platforms and windows (though the windows version may define fewer kinds of signals to be caughtto illustrate the basic signal parallel system tools