Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <iostream>
- using namespace std;
- const int BUFFER_SIZE = 1024;
- int sockfd;
- struct sockaddr_in serv_addr;
- struct hostent *server;
- int main(int argc, char* argv[]) {
- //Create and check socket
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0) {
- fprintf(stderr,"ERROR opening socket\n");
- exit(0);
- }
- //Setting up sockaddr
- server = gethostbyname("127.0.0.1");
- if (server == NULL) {
- fprintf(stderr,"ERROR: no such host\n");
- exit(0);
- }
- bzero((char *) &serv_addr, sizeof(serv_addr));
- serv_addr.sin_family = AF_INET; //Set adress family
- serv_addr.sin_port = htons(8000); //Convert and set port
- bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); //Connect to self
- //Trying to connect
- if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
- fprintf(stderr, "ERROR connecting\n");
- exit(0);
- }
- char buffer[BUFFER_SIZE]; //Buffer
- int n;
- bzero(buffer, BUFFER_SIZE); //Fill buffer with zeros
- fprintf(stdout, "Введите фразу для поиска: ");
- fgets(buffer, BUFFER_SIZE, stdin);
- n = write(sockfd, buffer, strlen(buffer));
- //Check written
- if (n < 0) {
- fprintf(stderr, "ERROR writing to socket");
- exit(0);
- }
- //Check read
- bzero(buffer, BUFFER_SIZE);
- n = read(sockfd, buffer, BUFFER_SIZE);
- if (n < 0) {
- fprintf(stderr, "ERROR reading from socket");
- exit(0);
- }
- printf("%s\n", buffer);
- close(sockfd);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement