static typename T::VALUE_TYPE Execute(const typename T::VALUE_TYPE& value) { UdpSocket socket; socket.bind(0, 0); TestUdpSenderRunnable<T> testSender(socket.getSocketAddrInfo().port, value); Thread thread; thread.start(testSender); UdpSocketInputStream<1450> inStream(socket); typename T::VALUE_TYPE resultValue; inStream >> resultValue; thread.join(); return resultValue; }
static typename T::VALUE_TYPE Execute(const typename T::VALUE_TYPE& value) { TcpServerSocket serverSocket; serverSocket.bind(0); serverSocket.listen(10); TestTcpSenderRunnable<T> testSender(value, serverSocket.port()); Thread thread; thread.start(testSender); TcpSocket* socket = serverSocket.accept(); TcpSocketInputStream inStream(*socket); typename T::VALUE_TYPE resultValue; inStream >> resultValue; thread.join(); delete socket; serverSocket.close(); return resultValue; }