Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <stdlib.h>
- #include <string.h>
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc, char *argv[])
- {
- int sockfd, newsockfd, portno, clilen;
- char buffer[256];
- struct sockaddr_in serv_addr, cli_addr;
- int n;
- char *result1 = "Ian G. Harris";
- char *result2 = "Joe Smith";
- char *result3 = "Jane Smith";
- if (argc < 2) {
- fprintf(stderr,"ERROR, no port providedn");
- exit(1);
- }
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- error("ERROR opening socket");
- bzero((char *) &serv_addr, sizeof(serv_addr));
- portno = atoi(argv[1]);
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = INADDR_ANY;
- serv_addr.sin_port = htons(portno);
- if (bind(sockfd, (struct sockaddr *) &serv_addr,
- sizeof(serv_addr)) < 0)
- error("ERROR on binding");
- listen(sockfd,5);
- clilen = sizeof(cli_addr);
- newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
- if (newsockfd < 0)
- error("ERROR on accept");
- printf("Address server startedn");
- while (strcmp(buffer, "+++n") != 0)
- {
- bzero(buffer,256);
- n = read(newsockfd,buffer,255);
- if (n < 0) error("ERROR reading from socket");
- if (strcmp(buffer, "harris@ics.uci.edun") == 0)
- {
- printf("%sn", result1);
- n = write(newsockfd,"harris@ics.uci.edu",18);
- if (n < 0) error("ERROR writing to socket");
- }
- else if(strcmp(buffer, "joe@cnn.comn") == 0)
- {
- printf("%sn", result2);
- n = write(newsockfd,"joe@cnn.com",18);
- if (n < 0) error("ERROR writing to socket");
- }
- else if(strcmp(buffer, "jane@slashdot.orgn")==0)
- {
- printf("%sn", result3);
- n = write(newsockfd,"jane@slashdot.org",18);
- if (n < 0) error("ERROR writing to socket");
- }
- }
- return 0;
- }
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdlib.h>
- #include <string.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- void error(char *msg)
- {
- perror(msg);
- exit(0);
- }
- 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 portn", argv[0]);
- exit(0);
- }
- portno = atoi(argv[2]);
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- error("ERROR opening socket");
- server = gethostbyname(argv[1]);
- if (server == NULL) {
- fprintf(stderr,"ERROR, no such hostn");
- exit(0);
- }
- 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);
- if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0)
- error("ERROR connecting");
- while (strcmp(buffer, "+++n") != 0)
- {
- printf("> ");
- bzero(buffer,256);
- fgets(buffer,255,stdin);
- n = write(sockfd,buffer,strlen(buffer));
- if (n < 0)
- error("ERROR writing to socket");
- if (strcmp(buffer, "+++n") == 0)
- {
- exit(0);
- }
- bzero(buffer,256);
- n = read(sockfd,buffer,255);
- if (n < 0)
- error("ERROR reading from socket");
- printf("%sn",buffer);
- }
- return 0;
- }
- > harris@ics.uci.edu
- Ian G. Harris
- > joe@cnn.com
- Joe Smith
- >
- Address server started
- harris@ics.uci.edu
- joe@cnn.com
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement