#include "pip.h" #include class CL: public PIObject { PIOBJECT(CL) public: EVENT_HANDLER1(void, nc, PIEthernet * , client) { piCout << "client" << client; } }; PIKbdListener kbd(0, 0, false); #include #define PIIS_TYPENAME(t) typeid(t).name() template class Name { public: static const char * name() {return PIIS_TYPENAME(T);} }; int main(int argc, char * argv[]) { //piCout << Name::name(); return 0; PICLI cli(argc, argv); cli.setDebug(false); cli.addArgument("send"); //PISystemInfo::machineID(); kbd.enableExitCapture(); kbd.start(); if (cli.hasArgument("send")) { /*piCout << "send mode"; PIEthernet eth; eth.setSendAddress(cli.rawArguments().back() + ":15123"); eth.open(); while (!kbd.exiting) { eth.send(PIByteArray("test string", 12)); piMSleep(500); }*/ PIEthernet eth(PIEthernet::TCP_Server); eth.listen(cli.rawArguments().back() + ":15123", true); //eth.open(); CL cl; CONNECTU(ð, newConnection, &cl, nc); WAIT_FOR_EXIT; piCout << "exiting ..."; } else { piCout << "recv mode"; PIEthernet eth(PIEthernet::TCP_Client); //eth.setReadAddress(cli.rawArguments().back() + ":15123"); eth.startThreadedRead(); int s = eth.socket(); piCout << s; piCout << "connect ..."; eth.connect(cli.rawArguments().back() + /*":13361"*/":15123"); piCout << "connect done" << eth.isConnected(); //fcntl(fd, F_SETFL, O_NONBLOCK); WAIT_FOR_EXIT; piCout << "exiting ..."; } /*PIThread t; t.start(10); //WAIT_FOR_EXIT; piSleep(20.); t.stop(true);*/ piCout << "exit main ..."; return 0; }