Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2012, 13:47   #1
Шиншилка
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 11
По умолчанию клиент и сервер на основе протокола UDP

Осуществить взаимодействие клиента и сервера на основе протокола UDP. Функционирование клиента и сервера реализовать следующим образом: клиент посылает серверу слово и получает это же слово разбитым на слоги.

Подскажите, пожалуйста, как исправить код.
Сервер
Код:
#pragma comment(lib,"Ws2_32.lib");
#include <WinSock2.h>

#include <Windows.h>
#include <iostream>
#include <stdlib.h>
#include <process.h>

using namespace std;

void main()
{
	WORD DLLVERSION;
	WSADATA wsaData;
	int perr;
	DLLVERSION = MAKEWORD(2,2);
	perr = WSAStartup(DLLVERSION,&wsaData);

	//вызов функции сокет
	SOCKET s;
	s = socket(AF_INET,SOCK_DGRAM,0);

	struct sockaddr_in host;
	host.sin_port = htons(1024);
	host.sin_family = AF_INET;
	host.sin_addr.s_addr = 0;

	bind(s,(struct sockaddr*)&perr,sizeof(perr));
	char d[100], tmp = '\0';
	int sum=0;
	int l;
	int ind = 1;
	l = sizeof(perr);

	int rv = recvfrom(s,d,lstrlen(d),0,(struct sockaddr*)&perr,&l);

	d[rv]='\0';
	if(d==1)
		cout<<d;

	if(d>1)
	for(int i=0; d[i];i++)
	{
		cout<<d[i];
		if((d[i]=='a')||(d[i]=='o')||(d[i]=='u')||
			(d[i]=='e')||(d[i]=='y')||(d[i]=='i'))
		{
			sum++;
		if((d[i+1]=='a')||(d[i+1]=='o')||(d[i+1]=='u')||
			(d[i+1]=='e')||(d[i+1]=='y')||(d[i+1]=='i'))
			cout<<"-";
		else
		if((d[i+2]=='a')||(d[i+2]=='o')||(d[i+2]=='u')||
			(d[i+2]=='e')||(d[i+2]=='y')||(d[i+2]=='i'))
			cout<<"-";
		else
		if((d[i+3]=='a')||(d[i+3]=='o')||(d[i+3]=='u')||
			(d[i+3]=='e')||(d[i+3]=='y')||(d[i+3]=='i'))
			ind = 2;
		else
		if((d[i+4]=='a')||(d[i+4]=='o')||(d[i+4]=='u')||
			(d[i+4]=='e')||(d[i+4]=='y')||(d[i+4]=='i'))
			ind = 3;
		else
			ind = 4;
		}
		else
			if((ind == 2)||(ind == 3)||(ind == 4))
			{
				if(d != sum)
					cout<<"-";
				ind = 0;
			}
	}

	sendto(s,d,lstrlen(d),0,(struct sockaddr*)&perr,l); 

	closesocket(s);
	WSACleanup();
}
Клиент
Код:
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
#include <iostream.h>

int main(void) {
char buf[100], b[100];
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2,2);
err=WSAStartuр(wVersionRequested, &wsaData);
if(err != 0){return 0; }
SOCKET s;
s = socket(AF_INET,SOCK_DGRAM,0);
sockaddr_in add;
add.sin_family = AF_INET;
add.sin_рort = htons(1024);
}
}
}
}
}
		
	 add.sin_addr.s_addr = inet_addr("127.0.0.1");

int t;
t = sizeof(add);
cout<<"Enter the string, рlease"<<endl;
cin.getline(buf,100,'\n');

sendto(s, buf, lstrlen(buf), 0, (struct sockaddr*) &add, t);
int rv = recvfrom(s, b, lstrlen(b), 0, (struct sockaddr*) &add, &t);
b[rv] = '\0';
cout<<b<<endl;
closesocket(s);
WSACleanuр();
return 0;
}

Последний раз редактировалось Stilet; 27.12.2012 в 15:46.
Шиншилка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UDP Клиент - сервер. Фильтрация IP на сервере Nikita_Serg C# (си шарп) 3 10.05.2012 11:52
Простая почтовая программа на основе протокола SMTP Rostislav1 Помощь студентам 0 25.05.2011 02:40
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
UDP клиент-сервер. Пакет neon2k Общие вопросы .NET 1 27.06.2010 11:53
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18