Introduction
Network streams are a great way to achieve communication between two applications, whether they are on the same local computer or not. The Network streams API are easy to use and require minimal low level programming. I have personally found that Network Streams behave in the same way as Queues in LabVIEW, but (unlike Queues), can be used to share data between two built applications.
That said, there still seems to be a lot of confusion as to how to use them correctly. Often specifying the correct URL for different endpoints is the main source of problems.
This example demonstrates a relatively simple example of using Network Streams to pass a screenshot between two applications. The idea is that these applications can both be on different computers, essentially approximating a remote desktop viewer in LabVIEW!
I've made sure to thoroughly comment my code, especially the parts in which the Network Streams endpoint URLs are built up.
Hopefully this example should give you some guidance in using Network Streams, and give you knowledge to use them in your own VIs!
The VIs
There are two main VIs in this Project.
The Writer VI
The Writer VI creates a Writer endpoint with a specific URL. The URL of the writer endpoint specifies both its name AND location. For example the URL '//10.100.192.168:Myprog/Writer' specifies an endpoint call 'Writer' on a machine with IP address '10.100.192.168' within an application called 'Myprog'. A lot more information is in the comments of the VIs.

When creating the Writer endpoint, I have also specified the Reader endpoint, so that the Writer endpoint can appropriately address any data it writes to the Network Stream.
The VI then continously takes screenshots (using a modified example found here https://decibel.ni.com/content/docs/DOC-19720), and sends them into the Network Stream.
The Reader VI
The Reader VI creates a reader endpoint in much the same way as described previously. This reader them simply reads available image data from the stream. It's worth noting that a reader endpoint will read data Out of the stream, meaning that it will only read a piece of data once, until new data is put into the stream. Essentially this is the same behaviour as Queues.
Extra notes
If you end up using the VIs on two different computers, make sure you put the correct IP addresses into the endpoint URLs. (You can easily find out the IP address of a machine by going into Command Prompt and typing 'ipconfig')
Possible improvements
The update rate of screenshots can be quite slow (up to and around a second), mainly because the screenshots are taken by calling a DLL to carry out a printscreen function, and then retrieving this data from the clipboard. Ideally I would like to find a faster way of doing this.
Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.