Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <signal.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- void error(const char* msg) {
- perror(msg);
- exit(1);
- }
- int main(int argc, char *argv[]) {
- signal(SIGCHLD, SIG_IGN); // ignore SIGCHLD to prevent zombies
- if (argc < 3) error ("wrong number of args");
- int sockfd, portno, n;
- struct sockaddr_in serv_addr;
- struct hostent *server;
- portno = atoi(argv[2]);
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0) error("error opening socket");
- // server = (struct hostent *) getbyhostname(argv[1]); /// obselete
- if (!server) error("no such host");
- memset(&serv_addr, 0 , sizeof(serv_addr));
- serv_addr.sin_family = AF_INET;
- // copy server address from *server to serv_addr
- // bcopy((char *) server->h_addr,
- // (char *) &serv_addr.sin_addr.s_addr,
- // server->h_length);
- inet_pton(AF_INET, "127.0.0.1", &(serv_addr.sin_addr));
- serv_addr.sin_port = htons(portno);
- // check if connect to server
- if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
- error("problem connecting");
- printf("enter message:\n");
- char buffer[256];
- bzero(buffer, 256);
- fgets(buffer, 255, stdin);
- n = write(sockfd, buffer, strlen(buffer)); // send data to server
- if (n < 0) error("error writing to socket");
- bzero(buffer, 256);
- n = read(sockfd, buffer, 255); // get response from server
- printf("%s\n", buffer);
- close(sockfd);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement