We won't convey any payload in this lesson, so we just have to give the name
of message to declare them:
-\dontinclude 2-simple.c
+\dontinclude 02-simple.c
\skip gras_msgtype_declare
\until gras_msgtype_declare
\ref gras_socket_client with the hostname and the port of the process you
want to contact as arguments. Our client should simply do:
-\dontinclude 2-simple.c
+\dontinclude 02-simple.c
\skip socket_client
\until socket_client
message. The simplest way to retrive a message type from its name is to use
\ref gras_msgtype_by_name. Since we don't have any payload, this becomes:
-\dontinclude 2-simple.c
+\dontinclude 02-simple.c
\skip msg_send
\until msg_send
Since our server is willing to wait up to 60 seconds for a message, the
following will do it:
-\dontinclude 2-simple.c
+\dontinclude 02-simple.c
\skip msg_wait
\until msg_wait
\ref gras_socket_my_port, \ref gras_socket_peer_name and \ref
gras_socket_peer_port to retrieve information about who you are connected to.
-\include 2-simple.c
+\include 02-simple.c
Here is the output of the simulator. Note that \ref gras_socket_peer_port
actually returns the port number of the <i>server</i> of the peer. This may
sound a bit strange to BSD experts, but it is actually really useful: you
can store this value, and contact your peer afterward passing this number to
\ref gras_socket_client .
-\include 2-simple.output
+\include 02-simple.output
Here we are, you now know how to exchange messages between peers. There is
still a large room for improvement, such as adding payload to messages. But