AxWin3 - Adding RichText rendering, no sscanf so doesn't compile
[tpg/acess2.git] / Usermode / Applications / testclient_src / main.c
1 /*
2  * Acess2 Test Client
3  */
4 #include <acess/sys.h>
5 #include <stdlib.h>
6 #include <stdio.h>
7 #include <net.h>
8
9  int    OpenTCP(const char *AddressString, short PortNumber);
10
11 /**
12  * \fn int main(int argc, char *argv[])
13  * \brief Entrypoint
14  */
15 int main(int argc, char *argv[])
16 {
17          int    con = -1;
18          int    len;
19         uint8_t data[4096];     // Packet Data
20         
21         con = OpenTCP("10.0.2.2", 80);
22         if(con == -1) {
23                 fprintf(stderr, "Unable to open TCP client\n");
24                 return -1;
25         }
26         
27         #define REQ_STR "GET / HTTP/1.1\r\n"\
28                 "Host: sonata\r\n"\
29                 "User-Agent: Acess2 TCP Test Client\r\n"\
30                 "\r\n"
31         
32         write(con, sizeof(REQ_STR)-1, REQ_STR);
33         
34         while( (len = read(con, 4095, data)) > 0 )
35         {
36                 data[len] = 0;
37                 _SysDebug("%i bytes - %s", len, data);
38                 printf("%s", data);
39         }
40         close(con);
41         return 0;
42 }
43
44 /**
45  * \brief Initialise a TCP connection to \a AddressString on port \a PortNumber
46  */
47 int OpenTCP(const char *AddressString, short PortNumber)
48 {
49          int    fd, addrType;
50         uint8_t addrBuffer[16];
51         
52         // Parse IP Address
53         addrType = Net_ParseAddress(AddressString, addrBuffer);
54         if( addrType == 0 ) {
55                 fprintf(stderr, "Unable to parse '%s' as an IP address\n", AddressString);
56                 return -1;
57         }
58
59         // Opens a R/W handle
60         fd = Net_OpenSocket(addrType, addrBuffer, "tcpc");
61         if( fd == -1 )
62         {
63                 fprintf(stderr, "Unable to open TCP Client\n");
64                 return -1;
65         }
66         
67         // Set remote port and address
68         ioctl(fd, 5, &PortNumber);
69         ioctl(fd, 6, addrBuffer);
70         
71         // Connect
72         if( ioctl(fd, 7, NULL) == 0 ) {
73                 fprintf(stderr, "Unable to start connection\n");
74                 return -1;
75         }
76         
77         printf("Connection opened\n");
78         
79         // Return descriptor
80         return fd;
81 }
82

UCC git Repository :: git.ucc.asn.au