00001
00002
00003
00004
00005
00006
00007
00008 #include "wvtcp.h"
00009 #include "wvistreamlist.h"
00010 #include "wvlog.h"
00011
00012 int main(int argc, char **argv)
00013 {
00014 WvLog err("tcp", WvLog::Error);
00015 WvTCPConn sock(WvString(argc==2 ? argv[1] : "0.0.0.0:25"));
00016
00017 wvcon->autoforward(sock);
00018 sock.autoforward(*wvcon);
00019
00020 WvIStreamList l;
00021 l.add_after(l.tail, wvcon, false);
00022 l.add_after(l.tail, &sock, false);
00023
00024 while (wvcon->isok() && sock.isok())
00025 {
00026 if (l.select(-1))
00027 l.callback();
00028 }
00029
00030 if (!wvcon->isok() && wvcon->geterr())
00031 err("stdin: %s\n", wvcon->errstr());
00032 else if (!sock.isok() && sock.geterr())
00033 err("socket: %s\n", sock.errstr());
00034
00035 return 0;
00036 }