Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
18.05.2015
Размер:
1.32 Кб
Скачать
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "find.h"

#define COUNT 5

int main()
{
    int sock;
    struct sockaddr_in addr;
    char msg1[50], msg2[50];
    int bytes_read;
    char *tmp = (char*)calloc(1024, sizeof(char));
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    if(sock < 0)
    {
        perror("socket");
        exit(1);
    }
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(3425);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        exit(2);
    }

    while(1)
    {
		struct sockaddr_in from;
		int from_len;

    		bytes_read = recvfrom(sock, msg1, 50, 0, 
			(struct sockaddr *)&from, &from_len);
    		msg1[bytes_read] = '\0';
		printf("Get msg: %s\n", msg1);
		fflush(stdout);

		bytes_read = recvfrom(sock, msg2, 50, 0, 
			(struct sockaddr *)&from, &from_len);
    		msg2[bytes_read] = '\0';
		printf("Get msg: %s\n", msg2);
		fflush(stdout);

		int param = 0;
		param = atoi(msg2);
		
		tmp = split_file(msg1, COUNT, param);

		printf("Sending Results...\n");
		fflush(stdout);
		sendto(sock, tmp, strlen(tmp), 0,
           		(struct sockaddr *)&from, from_len); 
    }
    
    return 0;
}

Соседние файлы в папке Lab1_5-12IT3-Divin