Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
fifa068
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 93
1

Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети

30.03.2013, 09:20. Просмотров 872. Ответов 3
Метки нет (Все метки)

Всем привет! есть условие: Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети. Сообщение содержит IP адрес получателя, передаваемый текст. Очередь обладает функциями добавления сообщений в очередь, изменение статуса сообщения вне зависимости от положения в очереди.

программу я почти сделал, но я не пойму как изменить статус сообщения вне зависимости от положения очереди. помогите пожалуйста.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 09:20
Ответы с готовыми решениями:

Как реализовать отправку сообщений между двумя клиентами (пк)?
кое как разобрался с языком.понятное дело просто синтаксис.без winapi некуда(я виндовщик) и захотел...

Реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT
Хочу реализовать UDP hole punching для прямой передачи информации между двумя компьютерами,...

В качестве линий связи для передачи данных по компьютерной сети могут использоваться
сетевая карта оптоволокно коаксиальный кабель витая пара

Программа для передачи сообщений по сети
Нужен код который СКОПИРУЕТ мою программу в папку с виндой.(программа для передачи сообшений по...

Программа для передачи сообщений между компами
Нужен код программ, которая будет передавать сообщения между двумя компами, соединёнными по...

3
StudAssistant
Эксперт
9811 / 7003 / 2319
Регистрация: 17.04.2006
Сообщений: 9,622
30.03.2013, 09:20
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
3
Ded_Vasilij
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
30.03.2013, 09:30 2
а код где?
0
fifa068
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 93
30.03.2013, 09:33  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#include <iostream.h>
 
const int N=10;
 
struct proc{
int prior;
char name[30];               //размерность
};
 
struct QUEUE {               //Структура элемента очереди
proc* arr[N];
int first;
int last;
int count;
};
 
int polniy(QUEUE *pq)          //Класс для выяснения полноты очереди
{
if (pq->count==N)            //очередь заполнена
return 1;
else
return 0;
}
 
int pystaya(QUEUE *pq)   
{
if (pq->count==0)           //очередь пустая
return 1;
else
return 0;
}
 
int wtf(QUEUE *pq)
{
int k = 0;
for (int i = 0; i < N; i++)
if (pq->arr[i] != NULL)
k++;
return k;
}
 
void init(QUEUE *pq)
{
pq->first=0;
pq->last=0;
pq->count=0;
for (int i = 0; i < N; i++)
    pq->arr[i] = NULL;               //Инициализация очереди, т.е. очистка всех значений для последующей корректной работой с очередью 
}
 
void Add(QUEUE *pq)                  //Ввод инфы 
{
proc *nproc;                         //объявление переменной
nproc = new proc;
cout<<"Вводим ip адресс:";cin >> nproc->name;
cout <<"Ваше сообщение: ";cin >> nproc->prior;
pq->arr[pq->last]=nproc;             //Доступ к переменной через указатель
pq->last++;
if (pq->last==N)
for(int i = 0; i < pq->count; i++)
if(pq->arr[i] == 0)
pq->last=i;
if(pq->last == N)
cout << "Err";
pq->count=wtf(pq);
}
 
void Del1(QUEUE *pq)
{
for (int i = 0; i < N; i++)
if(pq->arr[i] != NULL)
if (pq->arr[i]->prior > 30)
{
 cout <<pq->arr[i] -> name;
  cout <<pq->arr[i] -> prior << endl;
}
pq->count=wtf(pq);
}
 
void Del(QUEUE *pq)                     //Удаление сообщения из очереди
{
pq->arr[pq->first] = 0;
pq->first++;
if (pq->first==N)
pq->first=0;
pq->count=wtf(pq);
}
 
void Show(QUEUE *pq)                   //ввод данных в сообщение для очереди!
{
for (int i = 0; i < N; i++)
if (pq->arr[i] != NULL)
{
cout <<"Вводим ip aдрес:"<< pq->arr[i]->name<< endl;
cout <<"Ваше сообщение: " << pq->arr[i]->prior << endl <<endl;
}
}
 
int main()                 // Меню
{
 
QUEUE q;
init(&q);
char otv, otv1;
do
{
cout << "1.Добавление сообщения " << endl <<
        "2. Удаление сообщения из очереди" <<endl <<
        "3. Вывод очереди на экран" << endl <<
        "4. Проверка очереди на пустоту" << endl <<
        "5. Проверка очереди на заполненость" << endl <<
        "0. Выход" << endl;
cout << "Ваше действие: ";cin >> otv;
switch(otv)
{
case '1':
if (polniy(&q)==1)                                      //Проверяем заполнена ли очередь
cout << endl << "Очередь полная" << endl<<endl;
else
{
cout <<endl<< "Ввидите элемент"<< endl;
Add(&q);
cout << endl << "Сообщение успешно добавлено в очередь!" << endl<<endl;
}
break;
case '2':
cout << "1. Удалить сообщение из очереди! " << endl
<< "2. " << endl;
cout << "Choose your destiny - ";cin >> otv1;
switch(otv1)
    {
case '1':
if (pystaya(&q)==1)
cout << endl << "message net" << endl<<endl;
else
{
Del(&q);
cout << endl << " Сообщение удалено из очереди!" << endl<<endl;
}
break;
case '2':
if (pystaya(&q)==1)
cout << endl << "Очередь пустая!" <<endl<<endl;
else
{
Del1(&q);
cout << endl << " Сообщение найдено в очереди" << endl<<endl;
}
break;
default:
cout << endl << "Еrror" << endl;
break;
}
break;
case '3':
if (pystaya(&q)==1)
cout << endl << "Очередь пустая!" << endl<<endl;
else
{
cout << endl << "Элементы очереди:" << endl<<endl;
Show(&q);
cout << endl;
}
break;
case '4':
if (pystaya(&q)==1)
cout << endl << "Очередь пустая" << endl<<endl;
else
cout << endl << "Очередь содержит сообщение" << endl<<endl;
break;
case '5':
if (polniy(&q)==1)
cout << endl << "Очередь полная!" <<endl<<endl;
else
cout << endl << "Возможно добавить сообщение!" << endl<<endl;
break;
case '0':
break;
default:
cout << endl << "Еrror enter" <<endl<<endl;
break;
}
}while(otv!='0');
cin.get();
 
}
0
Tulosba
:)
Эксперт С++
4751 / 3245 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.03.2013, 10:15 4
Цитата Сообщение от fifa068 Посмотреть сообщение
программу я почти сделал
Смешно. Почти.
А где добавление/извлечение из очереди ?
Про булевы типы слышали?
Почему функцию называете классом?
Где хранятся ip-адреса?
Список вопросов можно продолжить.
0
30.03.2013, 10:15
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 10:15

Мессенджер для передачи сообщений напрямую между компьютерами
Вообщем посоны. Не уверен, что я по адресу, если что модератор перенесет. Меня интересует...

Передачи между двумя виртуальными com портами
Создал с помощью программы Virtual Null Modem два com порта, com2 и com3. Пытаюсь реализовать...

Объекты классов, взаимодействуют между собой посредством передачи сообщений
Помогите решить задачку,нужна в инст на комиссионный экзамен. Составить программу реализующую:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru