1/*
2 * Copyright 2008-2010, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Yin Qiu
7 */
8
9
10#include <errno.h>
11#include <netinet/in.h>
12#include <stdio.h>
13#include <stdlib.h>
14#include <string.h>
15#include <sys/socket.h>
16#include <unistd.h>
17
18
19int
20main(int argc, char **argv)
21{
22	int sockfd, status;
23	struct sockaddr_in serverAddr;
24
25	if (argc != 3)
26	{
27		fprintf(stderr, "Usage: %s <ip-address> <port>\n", argv[0]);
28		exit(1);
29	}
30
31	memset(&serverAddr, 0, sizeof(struct sockaddr_in));
32	serverAddr.sin_family = AF_INET;
33	serverAddr.sin_port = htons(atoi(argv[2]));
34
35	sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
36	if ((status = connect(sockfd, (struct sockaddr*)&serverAddr,
37			sizeof(struct sockaddr_in))) < 0) {
38		int e = errno;
39		fprintf(stderr, "Connection failed. Status: %d\n", status);
40		fprintf(stderr, "Error: %s\n", strerror(e));
41		exit(1);
42	} else {
43		printf("Connected to remote server.\n");
44		close(sockfd);
45		printf("Socket closed.\n");
46	}
47	return 0;
48}
49