current version
[opsoft_test.git] / gclib2 / unit_tests / connection.cxx
blob6399b751a25954f7b2057229e6371cc7a9918fc8
1 /*
2 * (c) Oleg Puchinin 2008
3 * graycardinalster@gmail.com
5 */
7 #include <gclib2.h>
8 #include <gc_network.h>
9 #include <dns.h>
11 int thread_in (void * param)
13 DConnection * c;
14 Buf * b;
15 c = (DConnection *) param;
17 while (true) {
18 c->select (30, 0);
19 b = c->recv ();
20 if (b) {
21 write (1, b->data (), b->len ());
22 delete b;
26 return 0;
29 int main (int argc, char ** argv)
31 Connection * c;
32 char * server;
33 char m_buf[4096];
35 if (argc != 3) {
36 printf ("usage: connection <IP> <PORT>\n");
37 return EXIT_SUCCESS;
40 c = new Connection;
41 c->init ();
43 server = argv[1];
44 if (! isIP (server))
45 server = dns_A (server);
46 if (c->connect (server, atoi (argv[2])) < 0) {
47 perror ("connect");
48 return EXIT_FAILURE;
51 Dclone (thread_in, (void *) c);
53 while (fgets( m_buf, 256, stdin)) {
54 chomp (m_buf);
55 strcat (m_buf, "\n");
56 c->send (m_buf, strlen (m_buf));
59 return EXIT_SUCCESS;