Chapter 21. WvTCP - using tcp streams

WvTCP is a WvStream-based TCP connection class.

	  
/*
 * A WvTCP example.
 *
 * Telnets to your local SMTP port, or any other port given
 * on the command line.
 */

#include "wvtcp.h"
#include "wvistreamlist.h"
#include "wvlog.h"

int main(int argc, char **argv)
{
    WvLog err("tcp", WvLog::Error);
    WvTCPConn sock(WvString(argc==2 ? argv[1] : "0.0.0.0:25"));

    wvcon->autoforward(sock);
    sock.autoforward(*wvcon);

    WvIStreamList l;
    l.add_after(l.tail, wvcon, false);
    l.add_after(l.tail, &sock, false);

    while (wvcon->isok() && sock.isok())
    {
	if (l.select(-1))
	    l.callback();
    }

    if (!wvcon->isok() && wvcon->geterr())
	err("stdin: %s\n", wvcon->errstr());
    else if (!sock.isok() && sock.geterr())
	err("socket: %s\n", sock.errstr());

    return 0;
}