diff --git a/init.c b/init.c
index ce16450..088e814 100644
--- a/init.c
+++ b/init.c
@@ -46,6 +46,8 @@
 int warnings_fatal = 0;
 int terse_version = 2;
 int is_backend = 0;
+int is_client = 0;
+char *client;
 
 int write_bw_log = 0;
 int read_only = 0;
@@ -161,6 +163,16 @@
 		.val		= 'S',
 	},
 	{
+		.name		= (char *) "net-port",
+		.has_arg	= required_argument,
+		.val		= 'P',
+	},
+	{
+		.name		= (char *) "client",
+		.has_arg	= required_argument,
+		.val		= 'C',
+	},
+	{
 		.name		= NULL,
 	},
 };
@@ -1079,6 +1091,9 @@
 		" (def 1024)\n");
 	printf("\t--warnings-fatal Fio parser warnings are fatal\n");
 	printf("\t--max-jobs\tMaximum number of threads/processes to support\n");
+	printf("\t--server\tStart a backend fio server\n");
+	printf("\t--client=hostname Talk to remove backend fio server at hostname\n");
+	printf("\t--net-port=port\tUse specified port for client/server connection\n");
 	printf("\nFio was written by Jens Axboe <jens.axboe@oracle.com>");
 	printf("\n                   Jens Axboe <jaxboe@fusionio.com>\n");
 }
@@ -1304,8 +1319,27 @@
 			}
 			break;
 		case 'S':
+			if (is_client) {
+				log_err("fio: can't be both client and server\n");
+				do_exit++;
+				exit_val = 1;
+				break;
+			}
 			is_backend = 1;
 			break;
+		case 'P':
+			fio_net_port = atoi(optarg);
+			break;
+		case 'C':
+			if (is_backend) {
+				log_err("fio: can't be both client and server\n");
+				do_exit++;
+				exit_val = 1;
+				break;
+			}
+			is_client = 1;
+			client = strdup(optarg);
+			break;
 		default:
 			do_exit++;
 			exit_val = 1;
@@ -1316,6 +1350,12 @@
 	if (do_exit)
 		exit(exit_val);
 
+	if (is_client && fio_client_connect(client)) {
+		do_exit++;
+		exit_val = 1;
+		return 1;
+	}
+
 	if (is_backend)
 		return fio_server();
 
@@ -1354,8 +1394,13 @@
 	for (i = 0; i < job_files; i++) {
 		if (fill_def_thread())
 			return 1;
-		if (parse_jobs_ini(ini_file[i], 0, i))
-			return 1;
+		if (is_client) {
+			if (fio_client_send_ini(ini_file[i]))
+				return 1;
+		} else {
+			if (parse_jobs_ini(ini_file[i], 0, i))
+				return 1;
+		}
 		free(ini_file[i]);
 	}
 
