Man pages for transports filled in

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
diff --git a/doc/sp_bind.3.txt b/doc/sp_bind.3.txt
index f259671..c985dc4 100644
--- a/doc/sp_bind.3.txt
+++ b/doc/sp_bind.3.txt
@@ -28,6 +28,10 @@
 Maximum length of the 'addr' parameter is specified by _SP_SOCKADDR_MAX_
 defined in '<sp/sp.h>' header file.
 
+Note that sp_bind and linknanomsg:sp_connect[3] may be called multiple times
+on the same socket thus allowing the socket to communicate with multiple
+heterogenous endpoints.
+
 RETURN VALUE
 ------------
 If the function succeeds positive endpoint ID is returned. Endpoint ID can be
diff --git a/doc/sp_connect.3.txt b/doc/sp_connect.3.txt
index 8f2e8b0..775e3fa 100644
--- a/doc/sp_connect.3.txt
+++ b/doc/sp_connect.3.txt
@@ -28,6 +28,10 @@
 Maximum length of the 'addr' parameter is specified by _SP_SOCKADDR_MAX_
 defined in '<sp/sp.h>' header file.
 
+Note that sp_connect and linknanomsg:sp_bind[3] may be called multiple times
+on the same socket thus allowing the socket to communicate with multiple
+heterogenous endpoints.
+
 RETURN VALUE
 ------------
 If the function succeeds positive endpoint ID is returned. Endpoint ID can be
diff --git a/doc/sp_inproc.7.txt b/doc/sp_inproc.7.txt
index 4167f0f..f008fd9 100644
--- a/doc/sp_inproc.7.txt
+++ b/doc/sp_inproc.7.txt
@@ -3,7 +3,7 @@
 
 NAME
 ----
-sp_inproc - In-process transport mechanism
+sp_inproc - in-process transport mechanism
 
 
 SYNOPSIS
@@ -15,8 +15,26 @@
 
 DESCRIPTION
 -----------
-In-process transport.
+In-process transport allows to send messages between threads or modules inside a
+process. In-process address is an arbitrary case-sensitive string preceded by
+'inproc://' protocol specifier. All in-process addresses are visible from any
+module within the process. They are not visible from outside of the process.
 
+The nature of in-process transport makes it easy to pass pointers between
+threads instead of actual data. This is, however, considered a bad application
+design and violates the scalable share-nothing architecture. If you do pass
+pointers among threads, synchronising thread access to shared data becomes
+your responsibility. Such design also prevents moving the thread into different
+process or machine once the need arises. As a rule of the thumb, don't pass
+pointers among threads unless you know what you are doing.
+
+EXAMPLE
+-------
+
+----
+sp_bind (s1, "inproc://test");
+sp_connect (s2, "inproc://test);
+----
 
 SEE ALSO
 --------
diff --git a/doc/sp_ipc.7.txt b/doc/sp_ipc.7.txt
index 420ccb8..e74ebc6 100644
--- a/doc/sp_ipc.7.txt
+++ b/doc/sp_ipc.7.txt
@@ -3,7 +3,7 @@
 
 NAME
 ----
-sp_ipc - Inter-process transport mechanism
+sp_ipc - inter-process transport mechanism
 
 
 SYNOPSIS
@@ -15,8 +15,27 @@
 
 DESCRIPTION
 -----------
-Inter-process transport.
+Inter-process transport allows for sending messages between processes within
+a single box. The implementation uses native IPC mechanism provided by the local
+operating system and the IPC addresses are thus OS-specific.
 
+On POSIX-compliant systems, UNIX domain sockets are used and IPC addresses are
+file references. Note that both relative (ipc://test.ipc) and absolute
+(ipc:///tmp/test.ipc) paths may be used. Also note that access rights on the IPC
+files must be set in such a way that the appropriate applications can actually
+use them.
+
+On Windows, named pipes are used for IPC. IPC address is an arbitrary
+case-insensitive string containing any character except for backslash.
+Internally, address ipc://test means that named pipe \\.\pipe\test will be used.
+
+EXAMPLE
+-------
+
+----
+sp_bind (s1, "ipc:///tmp/test.ipc");
+sp_connect (s2, "ipc:///tmp/test.ipc");
+----
 
 SEE ALSO
 --------
diff --git a/doc/sp_tcp.7.txt b/doc/sp_tcp.7.txt
index d4b73b5..270b743 100644
--- a/doc/sp_tcp.7.txt
+++ b/doc/sp_tcp.7.txt
@@ -15,8 +15,44 @@
 
 DESCRIPTION
 -----------
-TCP transport.
+TCP transport allows for passing message over the network using simple reliable
+one-to-one connections. TCP is the most widely used transport protocol, it is
+virtually ubiquitous and thus the transport of choice for communication over
+the network.
 
+When binding a TCP socket address of the form tcp://interface:port should be
+used. Port is the TCP port number to use. Interface is one of the following
+(optionally placed within square brackets):
+
+*  Asterisk character (*) meaning all local network interfaces.
+*  IPv4 address of a local network interface in numeric form (192.168.0.111).
+*  IPv6 address of a local network interface in numeric form (::1).
+*  Interface name, as defined by operating system.
+
+When connecting a TCP socket address of the form tcp://interface;address:port
+should be used. Port is the TCP port number to use. Interface is optional and
+specifies which local network interface to use. If not specified, OS will select
+an appropriate interface itself. If specified it can be one of the following
+(optionally placed within square brackets):
+
+*  IPv4 address of a local network interface in numeric form (192.168.0.111).
+*  IPv6 address of a local network interface in numeric form (::1).
+*  Interface name, as defined by operating system.
+
+Finally, address specifies the remote address to connect to. It can be one of
+the following (optionally placed within square brackets):
+
+*  IPv4 address of a remote network interface in numeric form (192.168.0.111).
+*  IPv6 address of a remote network interface in numeric form (::1).
+*  The DNS name of the remote box.
+
+EXAMPLE
+-------
+
+----
+sp_bind (s1, "tcp://*:5555");
+sp_connect (s2, "tcp://myserver:5555");
+----
 
 SEE ALSO
 --------