36 myTCP.RetryConnectServer(f);
44 const std::string &ipaddr =
"127.0.0.1",
45 const std::string &port =
"27678")
47 myTCP.server(ipaddr, port);
58 if (!myTCP.isConnected())
60 std::cout <<
"wex::tcp failed connection to server" << std::endl;
65 std::cout <<
"wex::tcp connected to server" << std::endl;
75 std::cout <<
"Post Message Error\n";
91 void server(
const std::string &port =
"27654")
93 myTCP.server(
"", port);
97 { myTCP.acceptClient(); },
100 std::cout <<
"connected" << std::endl;
112 return myTCP.isConnected();
118 void send(
const std::string &msg)
120 std::cout <<
"wex::tcp::send " << msg <<
"\n";
123 void send(
const std::vector<unsigned char> &msg)
159 return myTCP.readMsg();
161 std::string serverPort()
const
163 return myTCP.serverPort();
167 std::string myRemoteAddress;
169 raven::set::cTCP myTCP;
170 raven::await::cAwait myWaiter;
176 raven::await::cAwait::run,
193 myConnectHandler([](std::string port) {})
200 myConnectHandler(myPort);
209 if (!myTCP.isConnected())
211 if (myIpaddr.empty())
214 std::cout <<
"Input Connection closed, waiting for new client\n";
224 std::cout <<
"server disconnected\n";
243 const std::string &port,
244 std::function<
void(std::string & port)> connectHandler,
245 std::function<
void(std::string & port,
const std::string &msg)> readHandler)
249 myConnectHandler = connectHandler;
250 myReadHandler = readHandler;
261 myTCP.RetryConnectServer(f);
270 const std::string &ipaddr,
271 const std::string &port,
272 std::function<
void(std::string & port,
const std::string &msg)> readHandler)
276 myReadHandler = readHandler;
278 myTCP.client(ipaddr, port);
284 return myTCP.isConnected();
288 void send(
const std::string &msg)
311 std::function<void(std::string & port)> myConnectHandler;
312 std::function<void(std::string & port,
const std::string &msg)> myReadHandler;
314 std::string myIpaddr;
Read/Write to TCP/IP socket, client or server.
Definition: tcp.h:189
void send(const std::string &msg)
Send message to connected peer.
Definition: tcp.h:288
void RetryConnectServer(bool f)
Configure client() blocking.
Definition: tcp.h:259
void server(const std::string &port, std::function< void(std::string &port)> connectHandler, std::function< void(std::string &port, const std::string &msg)> readHandler)
Start server.
Definition: tcp.h:242
void client(const std::string &ipaddr, const std::string &port, std::function< void(std::string &port, const std::string &msg)> readHandler)
Connect to server.
Definition: tcp.h:269
void run()
Start the windex event handler.
Definition: tcp.h:303
void tcpRead(std::function< void(void)> f)
register function to call when tcp read accurs
Definition: wex.h:413
The base class for all windex gui elements.
Definition: wex.h:824
eventhandler & events()
Get event handler.
Definition: wex.h:1649
HWND handle()
get window handle
Definition: wex.h:1655
void run()
Run the windows message loop.
Definition: wex.h:1198
static gui & make()
Construct a top level window ( first call constructs application window )
Definition: wex.h:3252
Read/Write to TCP/IP socket, client or server.
Definition: tcp.h:18
void client(const std::string &ipaddr="127.0.0.1", const std::string &port="27678")
Create client socket connected to server.
Definition: tcp.h:43
bool isConnected()
true if valid connection
Definition: tcp.h:110
void send(const std::string &msg)
send message to peer
Definition: tcp.h:118
void server(const std::string &port="27654")
Create server socket waiting for connection requests.
Definition: tcp.h:91
void read()
asynchronous read message on tcp connection
Definition: tcp.h:140
std::string readMsg() const
Get last message from peer.
Definition: tcp.h:157
tcp(gui *parent)
CTOR.
Definition: tcp.h:23
void RetryConnectServer(bool f)
Configure client() blocking.
Definition: tcp.h:34