First commit of release 0.1
[sockstream.git] / test / revd.cpp
1 /**************************************************************************
2 **  (c) Copyright 2012, Andromeda Technology & Automation
3 ***************************************************************************
4 ** MODULE INFORMATION *
5 ***********************
6 **      FILE NAME      : revd.cpp
7 **      SYSTEM NAME    : Network and socket classes - test routine
8 **      VERSION NUMBER : 0.1
9 **
10 **  DESCRIPTION      :  Server socket test.
11 **
12 **  EXPORTED OBJECTS : 
13 **  LOCAL    OBJECTS : 
14 **  MODULES  USED    :
15 ***************************************************************************
16 **  ADMINISTRATIVE INFORMATION *
17 ********************************
18 **      ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
19 **      CREATION DATE   : Mar 02, 2012
20 **      LAST UPDATE     : Mar 09, 2012
21 **      MODIFICATIONS   : 
22 **************************************************************************/
23
24
25 #include "socket.h"
26
27
28 /*=========================================================================
29 **  NAME           : main
30 **  SYNOPSIS       :
31 **  PARAMETERS     :
32 **  RETURN VALUE   : None
33 **
34 **  DESCRIPTION    : 
35 **
36 **  VARS USED      :
37 **  VARS CHANGED   :
38 **  FUNCTIONS USED :
39 **  SEE ALSO       :
40 **  LAST MODIFIED  : Mar 09, 2012
41 **=========================================================================
42 */
43
44 int main()
45 {
46    std::cout << "Server socket test\n";
47
48    InternetAddress ip(in6addr_any);
49    Port            prt(2112);
50    IPSocketAddress sa(ip, prt);
51
52    std::cout << "Listening on IP address " << String(ip) << "\n";
53
54    StreamSocket s;
55    s.Listen(sa);
56
57    while (true)
58    {
59       char buf[1000];
60       int  len;
61
62       StreamSocket client = s.Accept();
63       std::cout << "Socket connected.\n";
64
65       do
66       {
67          char reverse[1000];
68
69          buf[0] = '\0';
70          len = client.Read(buf, 1000);
71          buf[len] = '\0';
72          std::cout << "\nLEN = " << len << "\n" << buf << "\n";
73          for (int i = 0; i < len; i++)
74          {
75             reverse[i] = buf[len-i-1];
76          }
77          client.Write(reverse, len);
78       }
79       while (len > 0);
80       client.Close();
81    }
82 }
83