| 1 | ab11 | 1.1 | // tdinwrite.cc. Test for -*- C++ -*- socket library | 
 
 
 
 
 | 2 |  |  | // Copyright (C) 1992,1993,1994 Gnanasekaran Swaminathan <gs4t@virginia.edu> | 
 
 
 
 
 | 3 |  |  | // | 
 
 
 
 
 | 4 |  |  | // Permission is granted to use at your own risk and distribute this software | 
 
 
 
 
 | 5 |  |  | // in source and binary forms provided the above copyright | 
 
 
 
 
 | 6 |  |  | // notice and this paragraph are preserved on all copies. | 
 
 
 
 
 | 7 |  |  | // This software is provided "as is" with no express or implied warranty. | 
 
 
 
 
 | 8 |  |  | // | 
 
 
 
 
 | 9 |  |  | // Version: 17Oct95 1.10 | 
 
 
 
 
 | 10 |  |  |  | 
 
 
 
 
 | 11 |  |  | #include <sockinet.h> | 
 
 
 
 
 | 12 |  |  | #include <stdlib.h> | 
 
 
 
 
 | 13 |  |  | #include <unistd.h> | 
 
 
 
 
 | 14 |  |  |  | 
 
 
 
 
 | 15 |  |  | int main(int ac, char** av) | 
 
 
 
 
 | 16 |  |  | { | 
 
 
 
 
 | 17 |  |  | if (ac < 3) { | 
 
 
 
 
 | 18 |  |  | cerr << "USAGE: " << av[0] << " thostname port-number " | 
 
 
 
 
 | 19 |  |  | << "data ... " << endl; | 
 
 
 
 
 | 20 |  |  | return 1; | 
 
 
 
 
 | 21 |  |  | } | 
 
 
 
 
 | 22 |  |  |  | 
 
 
 
 
 | 23 |  |  | osockinet osin (sockbuf::sock_dgram); | 
 
 
 
 
 | 24 |  |  |  | 
 
 
 
 
 | 25 |  |  | osin->connect (av[1], atoi (av[2])); | 
 
 
 
 
 | 26 |  |  |  | 
 
 
 
 
 | 27 |  |  | cout << "local: " << osin->localport() << ' ' << osin->localhost() << endl | 
 
 
 
 
 | 28 |  |  | << "peer:  " << osin->peerport() << ' ' << osin->peerhost() << endl; | 
 
 
 
 
 | 29 |  |  |  | 
 
 
 
 
 | 30 |  |  | // test socket options | 
 
 
 
 
 | 31 |  |  | cout << "socket type = " << osin->gettype() << endl; | 
 
 
 
 
 | 32 |  |  | cout << "socket linger time = " << osin->linger(10) << endl; | 
 
 
 
 
 | 33 |  |  | cout << "socket linger time = " << osin->linger(0)  << endl; | 
 
 
 
 
 | 34 |  |  | cout << "socket linger time = " << osin->linger()   << endl; | 
 
 
 
 
 | 35 |  |  | //      cout << "socket send bufsz = " << osin->sendbufsz() << endl; | 
 
 
 
 
 | 36 |  |  | //      cout << "socket recv bufsz = " << osin->recvbufsz() << endl; | 
 
 
 
 
 | 37 |  |  | cout << "socket keepalive  = " << osin->keepalive(1) << endl; | 
 
 
 
 
 | 38 |  |  | cout << "socket keepalive  = " << osin->keepalive(0) << endl; | 
 
 
 
 
 | 39 |  |  | cout << "socket clearerror = " << osin->clearerror() << endl; | 
 
 
 
 
 | 40 |  |  | cout << "socket debug = " << osin->debug(1) << endl; | 
 
 
 
 
 | 41 |  |  | cout << "socket debug = " << osin->debug(0) << endl; | 
 
 
 
 
 | 42 |  |  | cout << "socket reuse = " << osin->reuseaddr(1) << endl; | 
 
 
 
 
 | 43 |  |  | cout << "socket reuse = " << osin->reuseaddr(0) << endl; | 
 
 
 
 
 | 44 |  |  |  | 
 
 
 
 
 | 45 |  |  | #ifdef __linux__ | 
 
 
 
 
 | 46 |  |  | int timeo = 0; | 
 
 
 
 
 | 47 |  |  | osin->getopt(sockbuf::so_sndtimeo, &timeo, sizeof(timeo)); | 
 
 
 
 
 | 48 |  |  | cout << "socket sendtimeo = " << timeo << endl; | 
 
 
 
 
 | 49 |  |  | osin->getopt(sockbuf::so_rcvtimeo, &timeo, sizeof(timeo)); | 
 
 
 
 
 | 50 |  |  | cout << "socket recvtimeo = " << timeo << endl; | 
 
 
 
 
 | 51 |  |  | #endif | 
 
 
 
 
 | 52 |  |  |  | 
 
 
 
 
 | 53 |  |  | osin << ac-3; av += 3; | 
 
 
 
 
 | 54 |  |  | while(*av) osin << *av++ << ' '; | 
 
 
 
 
 | 55 |  |  | osin << endl; | 
 
 
 
 
 | 56 |  |  |  | 
 
 
 
 
 | 57 |  |  | return 0; | 
 
 
 
 
 | 58 |  |  | } | 
 
 
 
 
 | 59 |  |  |  | 
 
 
 
 
 | 60 |  |  |  | 
 
 
 
 
 | 61 |  |  |  |