/// creates an UDT server and connects using a socket to it int testUDTServer () { UDTServer server; Error e = server.listen (0); tassert (!e, "Should find a port"); int port = server.port (); printf ("Listening on %d\n", port); UDTSocket socket; ResultCallbackHelper helper; socket.connectAsync ("localhost", port, helper.onResultFunc()); helper.wait(2000); tassert (helper.ready() && helper.result() == error::InvalidArgument, "Should not accept DNS names"); socket.connectAsync ("127.0.0.1", port, helper.onResultFunc()); // localhost won't work! tassert (helper.waitReadyAndNoError(2000), "Should connect"); test::millisleep_locked (100); tassert (server.pendingConnections() == 1, "Should have one pending connection"); UDTSocket * socket2 = server.nextConnection(); tassert (socket2->error() == NoError, "Incoming socket shall be ok"); tassert (socket.error() == NoError, "Outgoing socket shall be ok"); tassert (testSockets (&socket, socket2) == 0, "Sockets shall support this test"); socket2->close(); test::millisleep_locked (100); tassert1 (!socket.isConnected()); delete socket2; return 0; }