

#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <stdio.h>
#include <time.h>
#include "tcp_sock.h"

#define SERVER_SOCK_ADDR     "127.0.0.1"
int   count=0;


int connect_server(void)
{
    int soc_fd;
    int len;
    int result;
    static struct sockaddr_in serverAddr;
    /* 接続するサーバ側のアドレスを命名する。*/
    memset( &serverAddr, 0, sizeof(serverAddr) );
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_addr.s_addr = inet_addr( SERVER_SOCK_ADDR );
    serverAddr.sin_port = htons ( SERVER_SOCK_PORT );

    /* ファイルディスクリプタを作成する */
	
     //   | SOCK_NONBLOCK
    soc_fd = socket( AF_INET, SOCK_STREAM , 0 );
    
    len = sizeof( serverAddr );
    result = connect(soc_fd,
            (struct sockaddr *)&serverAddr, len);
	if ( result < 0 )
	{
	    // ･皈ﾃ･ｻ｡ｼ･ｸﾆ簣ﾆ､ﾎｼ�ｿｮOK
		perror("connect");
		GDB_PRINTF(  "connect(soc_fd) failed(errno=%d).\n",errno );
	}
    return soc_fd;
}

int  main(int argc, char **argv)
{
	
   time_t timer;
    char buffer[26];
    struct tm* tm_info;


	int ret;
	int fd;
	char *msg;
	fd=connect_server();
	GDB_PRINTF(  "client fd=(%d).\n",fd );
	send_mesg(fd,"test tcp client");
	
    time(&timer);
    tm_info = localtime(&timer);
    strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
    //puts(buffer);
	GDB_PRINTF(  "before recv_mesg time(%s).\n",buffer );
	ret=recv_mesg(fd,&msg);

    time(&timer);
    tm_info = localtime(&timer);
    strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
    // puts(buffer);
    GDB_PRINTF(  "after recv_mesg time(%s).\n",buffer );

	if (ret>0){
		GDB_PRINTF(  "msg(%s).\n",msg );
		free( msg );
	}
	
	close(fd);
	
    return 0;
	/*NOTREACHED*/
}

