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
19 int
main(int argc,char ** argv)20 main(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