Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
167
Добавлен:
01.04.2014
Размер:
1.88 Кб
Скачать
// подключение библиотек

#include <winsock2.h>
#include <windows.h>
#include <process.h> /* _beginthread, _endthread */
#include <ostream.h>
#include <string.h>

//функция обработки строки
void StringAnalizing(void* s) 
{
	
	char b[200];	// переменная для получения данных
	
	int words=0;
	// адресная структура
	sockaddr_in ad;
	ad.sin_family = AF_INET;
	ad.sin_port = htons(1280); 
	ad.sin_addr.s_addr = htonl(INADDR_ANY);

	//размерность структуры
	int j=sizeof(ad);
	int c=bind((SOCKET)s,(LPSOCKADDR)&ad, j);
	
	//получение данных от клиента
	if (recvfrom((SOCKET)s,b,sizeof(b),0,(LPSOCKADDR) &ad, &j)!=0) 
	{
		cout<<"have a data"<<endl;
		cout<<"________________"<<endl;
		
		//счетчик гласных букв
		int number = 0;
		/////////// пользовательская функция подсчета гласных букв

		//массив гласных букв
		char alphabet[12] ={'A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'Y', 'y'};
		
		//поиск гласных букв
		
		char *tokenPtr;
		tokenPtr = strtok(b, " ");

		while (tokenPtr !=NULL)
		{
		
		
		
		
		for (int i=0; i < strlen(tokenPtr); i++)
		{
			for (int j=0; j<12; j++)
				if (tokenPtr[i]==alphabet[j])
					number++;
		}

				
				if (number<=4) words++;
				number = 0;

				tokenPtr = strtok(NULL, " ");
		}



				char buf[10];
				_itoa(words, buf,10);


				//отправка значения клиенту
				sendto((SOCKET)s,buf,sizeof(buf),0,(LPSOCKADDR) &ad, j);
	}
}

//главная функция
int main() 
{
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;
	wVersionRequested = MAKEWORD(2,2);
	err = WSAStartup(wVersionRequested, &wsaData); 
	if(err != 0) return - 1;
	
	//создание сокета
	SOCKET s = socket(AF_INET, SOCK_DGRAM,0);
	
	//запуск функции в новом потоке
	while(true) 
	{
		_beginthread(StringAnalizing,0,(void*) s);
	}
	closesocket(s);
	WSACleanup();
	return 0;
}
Соседние файлы в папке UPDserv
  • #
    01.04.20141.88 Кб167serv.cpp
  • #
    01.04.20144.08 Кб164UPDserv.dsp
  • #
    01.04.2014539 б164UPDserv.dsw
  • #
    01.04.201441.98 Кб164UPDserv.ncb
  • #
    01.04.201448.64 Кб164UPDserv.opt
  • #
    01.04.20141 Кб164UPDserv.plg