Сети, одинаковые слова в с++

нужна ваша помощь. Вопрос: Клиент посылает набор слов, сервер находить и возвращает одинаковые слова. В интернете ничего стоящего не нашел. Не могли бы сказать что именно нужно, чтобы находить одинаковые слова и потом их отправлять обратно клиенту?

Вот пример: Это мое предыдущее задание, в этом примере клиент посылает слова а сервер разбивает их на слоги.

Сервер:

#include <iostream> 
#include <winsock2.h> 
#pragma warning(disable: 4996)
#pragma comment (lib, "ws2_32.lib") 
using namespace std;
bool is_vowel(char ch)
{
    int i, l;
    char vowels[] = "AаЕеЁёИиОоУуЫыЭэЮюЯя";
    l = strlen(vowels);
    for (i = 0; i < l; i++)
    {
        if (ch == vowels[i]) break;
    }
    return (i != l);
}

void main()
{ 

    WORD wVersionRequested;
    WSADATA wsaData;
    SOCKET s;
    sockaddr_in addr;
    int err, size;
    char b1[200], b2[200];
    int i, k, n, v1, v2, s1, s2;
    wVersionRequested = MAKEWORD(2, 2);
    err = WSAStartup(wVersionRequested, &wsaData);
    if (err != 0) return;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(1024);
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    s = socket(AF_INET, SOCK_DGRAM, 0);
    bind(s, (sockaddr*)&addr, sizeof(addr));
    while (true)
    {
        size = sizeof(addr);
        recvfrom(s, b1, sizeof(b1), 0, (sockaddr*)&addr, &size);
        n = strlen(b1);
        for (v1 = 0; v1 < n; v1++)
        {
            if (is_vowel(b1[v1])) break;
        }
        if (v1 == n) strcpy(b2, b1);
        else
        {
            k = s1 = s2 = 0;
            while (s1 < n)
            {
                for (v2 = (v1 + 1); v2 < n; v2++)
                {
                    if (is_vowel(b1[v2])) break;
                }
                if (v2 == n) s2 = n;
                else
                {
                    if ((v2 - v1) > 2) s2 = v1 + 1;
                    else s2 = v1;
                }
                for (i = s1; i <= s2; i++) b2[k++] = b1[i];
                if (s2 != n) b2[k++] = '-';
                s1 = s2 + 1; v1 = v2;
            }
        }
        sendto(s, b2, sizeof(b2), 0, (sockaddr*)&addr, size);
    }
    closesocket(s);
    WSACleanup();
}

Клиент:

#include <WinSock2.h> 
#include <iostream> 
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#pragma warning(disable: 4996)
#pragma comment (lib, "ws2_32.lib") 
using namespace std;


void main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    SOCKET s;
    sockaddr_in addr;
    char b[200];
    int err, size;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    wVersionRequested = MAKEWORD(2, 2);
    err = WSAStartup(wVersionRequested, &wsaData);
    if (err != 0) return;
    s = socket(AF_INET, SOCK_DGRAM, 0);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(1024);
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    cout << "Введите строку:" << endl;
    cin.getline(b, sizeof(b), '\n');
    size = sizeof(addr);
    cout << "Разбиение на слоги:" << endl;
    sendto(s, b, sizeof(b), 0, (sockaddr*)&addr, size);
    if (recvfrom(s, b, sizeof(b), 0, (sockaddr*)&addr, &size) != 0)
        cout << b << endl;
    closesocket(s);
    WSACleanup();
    _getch();
}

Ответы (0 шт):