Skip to content
Snippets Groups Projects
Select Git revision
  • 10ef484a789b33ec3f5f4833139aa6e48baa51fd
  • master default protected
2 results

authorized_keys

Blame
  • Forked from Renlord Yang / comp30023-keys
    Source project has a limited visibility.
    client.c 1.76 KiB
    
    /* 
     * Client program based on sample code
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h> 
    #include <unistd.h>
    
    
    int main(int argc, char* argv[])
    {
    	int sockfd, portno, n;
    	struct sockaddr_in serv_addr;
    	struct hostent *server;
    
    	char buffer[256];
    
    	if (argc < 3) 
    	{
    		fprintf(stderr,"usage %s hostname port\n", argv[0]);
    		exit(0);
    	}
    
    	portno = atoi(argv[2]);
    
    	
    	/* Translate host name into peer's IP address ;
    	 * This is name translation service by the operating system 
    	 */
    	server = gethostbyname(argv[1]);
    	
    	if (server == NULL) 
    	{
    		fprintf(stderr,"ERROR, no such host\n");
    		exit(0);
    	}
    	
    	/* Building data structures for socket */
    
    	bzero((char *) &serv_addr, sizeof(serv_addr));
    
    	serv_addr.sin_family = AF_INET;
    
    	bcopy((char *)server->h_addr, 
    			(char *)&serv_addr.sin_addr.s_addr,
    			server->h_length);
    
    	serv_addr.sin_port = htons(portno);
    
    	/* Create TCP socket -- active open 
    	* Preliminary steps: Setup: creation of active open socket
    	*/
    	
    	sockfd = socket(AF_INET, SOCK_STREAM, 0);
    	
    	if (sockfd < 0) 
    	{
    		perror("ERROR opening socket");
    		exit(0);
    	}
    	
    	if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0) 
    	{
    		perror("ERROR connecting-");
    		exit(0);
    	}
    
    	/* Do processing
    	*/
    	
    	printf("Please enter the message: ");
    
    	bzero(buffer,256);
    
    	fgets(buffer,255,stdin);
    
    	n = write(sockfd,buffer,strlen(buffer));
    
    	if (n < 0) 
    	{
    		perror("ERROR writing to socket");
    		exit(0);
    	}
    	
    	bzero(buffer,256);
    
    	n = read(sockfd,buffer,255);
    	
    	if (n < 0)
    	{
    		perror("ERROR reading from socket");
    		exit(0);
    	}
    
    	printf("%s\n",buffer);
    
    	return 0;
    }