#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>

int main(int deneme, char *deneme1[])
{
	struct hostent *h;
	struct sockaddr_in myaddr; 
	struct in_addr a;

	char dest[100];
	int sinlen, yes=1, listener;

	if(deneme != 2) {
		printf("usage: %s dest.host\n",deneme1[0]);
		exit(0);
	}

	h = gethostbyname(deneme1[1]);

	if(h == NULL)
	{
		herror("gethostbyname");
		exit(0);
	}

	strcpy(dest,inet_ntoa(*((struct in_addr *)h->h_addr)));


	myaddr.sin_family = AF_INET;
	memset(&(myaddr.sin_zero), 0, 8);
	sinlen = sizeof(struct sockaddr_in);

	if ((listener = socket(AF_INET, SOCK_STREAM, 0)) == -1)  {
		perror("socket");
		exit(1);
	} 
		
        if (setsockopt(listener, SOL_SOCKET, SO_REUSEADDR, &yes,sizeof(int)) == -1) {
                perror("setsockopt");
                exit(1);
        }	

	myaddr.sin_family = AF_INET;
	myaddr.sin_addr.s_addr = inet_addr("213.194.103.100");
	memset(&(myaddr.sin_zero), 0, 8);

        if (bind(listener, (struct sockaddr *)&myaddr, sizeof(myaddr)) == -1) {
                perror("bind");
                exit(1);
        }

	myaddr.sin_addr.s_addr = inet_addr(dest);
	myaddr.sin_port = htons(25);

	if(connect(listener, (struct sockaddr *)&myaddr, sinlen) == -1)
	{
		perror("connect");
		exit(0);
	}

	puts("connecttion with 213.194.103.98 ip address is done.\n");
return;
}

