diff --git a/apps/EchoClient.cpp b/apps/EchoClient.cpp
index 606f031b3901e06b8921161cb9968b2692a944ba..18bcbf764d79651d0b4561da1a5e2b6f27178233 100644
--- a/apps/EchoClient.cpp
+++ b/apps/EchoClient.cpp
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: LGPL-3.0-or-later
 // Copyright © 2021 Florian Fischer
+#include <arpa/inet.h>
 #include <fcntl.h>
 #include <netdb.h>	//for getaddrinfo
 #include <netinet/in.h>
@@ -9,6 +10,7 @@
 #include <unistd.h>
 
 #include <algorithm>	// for find
+#include <array>
 #include <atomic>
 #include <cerrno>		// for errno, ECANCELED
 #include <chrono>		// for nanoseconds, duration, durat...
@@ -364,7 +366,7 @@ auto Client::startNew(Semaphore& readySem, Semaphore& startSem, CPS& cps) -> boo
 	return true;
 }
 
-auto getOption(int argc, char** argv, const std::string& option) -> char* {
+static auto getOption(int argc, char** argv, const std::string& option) -> char* {
 	char** end = argv + argc;
 	char** itr = std::find(argv, end, option);
 
@@ -388,6 +390,36 @@ static void printUsage(char* name) {
 			<< std::endl;
 }
 
+static void printIp(struct sockaddr* addr) {
+	std::array<char, INET6_ADDRSTRLEN> serverAddrString;
+	void* serverAddr;
+	switch (addr->sa_family) {
+		case AF_INET:
+			serverAddr = &(((struct sockaddr_in*)addr)->sin_addr);
+			break;
+		case AF_INET6:
+			serverAddr = &(((struct sockaddr_in6*)addr)->sin6_addr);
+			break;
+		default:
+			DIE_MSG("uknown sa_family " << addr->sa_family);
+	}
+	inet_ntop(addr->sa_family, serverAddr, serverAddrString.data(), INET6_ADDRSTRLEN);
+	std::cout << "echo client connecting to " << serverAddrString.data() << ":" << port << std::endl;
+}
+
+static void printSettings() {
+	std::cout << "parameters: {termination=";
+	if (execution_seconds) {
+		std::cout << execution_seconds << "seconds";
+	} else {
+		std::cout << iterations << "iterations";
+	}
+	std::cout << ",clients=" << nclients;
+	std::cout << ",size=" << size;
+	std::cout << ",sendquit= " << (sendQuit ? "true" : "false");
+	std::cout << "}" << std::endl;
+}
+
 auto main(int argc, char* argv[]) -> int {
 	if (existsOption(argc, argv, "-h")) {
 		printUsage(argv[0]);
@@ -481,6 +513,9 @@ auto main(int argc, char* argv[]) -> int {
 		}
 	}
 
+	printIp(server->ai_addr);
+	printSettings();
+
 	Runtime runtime;
 
 	Fiber* alphaFiber = Fiber::from([&] {
@@ -501,7 +536,7 @@ auto main(int argc, char* argv[]) -> int {
 			}
 		}
 
-		// await the clients
+		// await the connection of all clients
 		for (size_t i = 0; i < nclients; ++i) {
 			readySemaphore.acquire();
 		}