Skip to content

Instantly share code, notes, and snippets.

@AjayKrP
Last active October 1, 2017 03:54
Show Gist options
  • Save AjayKrP/5f958230c41361bf29f8ecf2e492604a to your computer and use it in GitHub Desktop.
Save AjayKrP/5f958230c41361bf29f8ecf2e492604a to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <netinet/in.h>
#include <netdb.h>
#include <memory.h>
#include <zconf.h>
void error(const char* msg){
perror(msg);
exit(0);
}
int main(int argc, char** argv){
int sockfd;
ssize_t n;
uint16_t port;
struct sockaddr_in serv_addr;
struct hostent* server;
char buffer[256];
if(argc < 3){
fprintf(stderr, "Uses %s hostname port", argv[0]);
exit(0);
}
port = (uint16_t)atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd < 0){
error("Unable to create socket");
}
server = gethostbyname(argv[1]);
if(server == NULL){
fprintf(stderr, "Np such host\n");
exit(0);
}
bzero((char*)&serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy(server->h_addr, (char*)&serv_addr.sin_addr.s_addr,
(size_t)server->h_length);
serv_addr.sin_port = htons(port);
if(connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0){
error("Error to connecting!!!");
}
printf("Please enter operation: ");
bzero(buffer, 256);
fgets(buffer, 255, stdin);
n = write(sockfd, buffer, strlen(buffer));
if(n < 0){
error("Error to writing socket!!!");
}
bzero(buffer, 256);
n = read(sockfd, buffer, 255);
if(n < 0){
error("Error reading from socket!!!");
}
printf("Result is = %s\n", buffer);
close(sockfd);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment