Сети, одинаковые слова в с++
нужна ваша помощь. Вопрос: Клиент посылает набор слов, сервер находить и возвращает одинаковые слова. В интернете ничего стоящего не нашел. Не могли бы сказать что именно нужно, чтобы находить одинаковые слова и потом их отправлять обратно клиенту?
Вот пример: Это мое предыдущее задание, в этом примере клиент посылает слова а сервер разбивает их на слоги.
Сервер:
#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();
}