Message based communication using sockets.
Using sockets for client / server development
Following on from Using sockets for a character based stream we now introduce the idea of messaging.
When we need to send commands between two systems (often referred to as client and server) we normally use message based communication, this was briefly discussed in the data communications introduction. For this example we will use Java, it’s freely available and there are many good IDEs. Also note that this code is not ready for production use, and is therefore purely for learning purposes.
Using sockets for a character based stream
Following on from the article Introduction to data communications we will now go into more depth, by looking at an example of stream based communication. We will use sockets for the example; mainly because sockets are available out of the box on any computer connected to the internet.
A socket is a stream based connection between a server and a client. Recall from the prior page this means that data is received in the order it was sent. Usually, the server and client are two processes, that may run on the same computer or different computers. It makes no difference what operating system they run, or what hardware they run on as long as it supports sockets.
Data communications by example for developers
In this section I discuss communication protocols; we start with a grounding on the basics and move through to some worked examples. To start with let’s look at some of the simplest cases and understand how communications between computer systems work in practise.
There are many methods of communicating between two computers, be they embedded, mobile, desktop or server. Protocols range from the low level SPI and I2C right through to stream based approaches such as sockets over a network. Conversely, probably the easiest one to learn first is TCP/IP sockets, as this is available out of the box in most programming environments without the need to install extra software or hardware. If you can use a web browser on the device, it has support for TCP/IP sockets! For now let's take a look at communications without considering any particular protocol.