#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<winsock.h>

void finger(char*user,SOCKET thesocket,char*ipaddr);

void main(void)
{
	WSADATA wsadata;
	WORD wver;
	int Initwinsock;
	SOCKET thesocket;

	wver=MAKEWORD(1,1);
	//Initialize WinSock and check the version
	Initwinsock=WSAStartup(wver,&wsadata);

	if(Initwinsock !=0){
		printf("Cannoot Start Winsock\n");
	}
	else{
	//	Create a TCP/IP stream socket
		thesocket=socket(AF_INET,SOCK_STREAM,0);
		printf("Socket Number=%d\n",thesocket);
		finger("all",thesocket,"queen.mut.ac.th");

		closesocket(thesocket);
	}
	//Release WinSock
	WSACleanup();
}
void finger(char*user,SOCKET thesocket,char*ipaddr)
{
	int connect_server;
	LPHOSTENT lphostent;
	SOCKADDR_IN addr_host;
	char send_buf[256];
	char d[10]="";
	char e[1024]="";
//	char *d;
    int len,a,b=0;
	lphostent=gethostbyname(ipaddr);

	addr_host.sin_addr=*((LPIN_ADDR)*lphostent->h_addr_list);
	addr_host.sin_family=AF_INET;
	addr_host.sin_port=htons(79);//prot finger

	connect_server = connect(thesocket,(struct sockaddr*)&addr_host,sizeof(addr_host));

	if(connect_server==SOCKET_ERROR){
		printf("Cannot connect server\n");
	}else{
		printf("Connect Server...\n");
		if(!(strcmp(user,"all"))){
			strcpy(send_buf,"\r\n");

		}else{
			strcpy(send_buf,user);
			strcat(send_buf,"\r\n");
		}
		send(thesocket,send_buf,sizeof(send_buf),0);
		len=10;
		do
		{
		recv(thesocket,d,10,0);
		strncat(e,d,10);
	//	len=strlen(d);
		//printf("len= %d\n",len);
		len=len-1;
		}
		while(len!=0);
	/*	do
		{
	      if(len<14)
		  {
		  strncat(e,d,1);
          recv(thesocket,d,1,0);
		  }
		  if(len=14)
		  {
		  strncat(e,d,10);
          recv(thesocket,d,10,0);
		  }
		  len=strlen(d);
		}while(len!=0);
	*/
	    printf("%s\n",e);
		len=strlen(e);
		printf("len= %d\n",len);
		for(a=0;a<len;a++)
		{
			if(d[a]=='\n')
			{ 
			b=b+1;
			}
		}
		printf("--------------------------------------------------------------------------\n");
		printf("use = %d\n",b);
		printf("--------------------------------------------------------------------------\n");
	}
}
