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

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

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2016, 11:20   #1
_Сергей_)
Новичок
Джуниор
 
Регистрация: 29.04.2016
Сообщений: 1
По умолчанию Клиент принимает неизвестные данные функцией RECV

Прошёлся отладчиком по клиенту. Выяснил, что клиент принимает пустую строку, хотя сервером эти данные не отправляются.
P.s. Последняя строка в клиенте. Она показывает пустую строку


Клиент:
void Transport_system::add_transport_sys tem()
{
char buf[5];
system("cls");
set_name();
set_amount_of_centers();
set_matrix();
name[strlen(name)] = '\0';
send(socket, name, strlen(name) + 1, 0);
do
recv(socket, buf, sizeof(buf), 0);//принимаем данные, что такого файла не существует
while (!(buf[0] == '1' || buf[0] == '0'));
if (atoi(buf) == 1)//если не существует
{
int N = atoi(amountOfCenters);
string matrix_string[100][100];
char buf2[10];
for (int i = 0; i < atoi(amountOfCenters); i++)
for (int j = 0; j < atoi(amountOfCenters); j++)
{
_itoa_s(matrix[i][j], buf2, 10, 10);//отправляем матрицу
matrix_string[i][j] = string(buf2);
}
amountOfCenters[strlen(amountOfCenters)] + '\0';
send(socket, amountOfCenters, strlen(amountOfCenters) + 1, 0);//отправляем количество лог-центров
for (int i = 0; i < atoi(amountOfCenters); i++)
for (int j = 0; j < atoi(amountOfCenters); j++)
send(socket, matrix_string[i][j].c_str(), matrix_string[i][j].size(), 0);
recv(socket, buf2, strlen(buf2), 0);//принимаем что всё ОК
if (atoi(buf2) == 1)
cout << "\n\tДанные успешно занесены";
else
cout << "Ошибка записи данных";
}
if (atoi(buf) == 0)//если существует
cout << "Такая транспортная сеть уже существует\n";
_getch();
fflush(stdin);
fflush(stdout);
fflush(stderr);
recv(socket, buf, strlen(buf), 0); //здесь принимает неизвестно что
}

Сервер:


void Transport_system::add_transport_sys tem()
{
char buf[30];
int value = 0;
recv(s, buf, strlen(buf), 0); //1
strcpy_s(name, strlen(buf) + 1, buf);
strcpy_s(file_name, strlen(name) + 1, name);
strcat_s(file_name, 34, ".txt");
if (_access(file_name, 0)!=-1)
{
send_number(0);
throw ("Транспортная сеть существует");
}
else
{
send_number(1);
recv(s, buf, strlen(buf) + 1, 0); //принимаем размер матрицы
value = atoi(buf);//кол-во центров
for (int i = 0; i < value; i++)
for (int j = 0; j < value; j++)
capacity[i][j] = recv_number();
}
ofstream f(file_name, ios_base::app);
f << value << "\n";
for (int i = 0; i < value; i++)
{
for (int j = 0; j < value; j++)
f << capacity[i][j] << " ";
f << "\n";
}
f.close();
send(s, "1\0", 2, 0);
}
_Сергей_) вне форума Ответить с цитированием
Старый 05.06.2016, 15:22   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

рукалицо
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервер принимает пакеты если клиент указывает неверный порт получателя UDP Yandex&Google C/C++ Сетевое программирование 0 12.02.2016 00:03
tcp. клиент сервер. проблема с recv. xquant1x C/C++ Сетевое программирование 1 14.09.2014 23:56
Не принимает данные(soket) WebbMan C/C++ Сетевое программирование 0 02.02.2012 19:35
сервер-клиент, recv-send и проблема с передаваемыми символами. Ksardas13 Общие вопросы C/C++ 9 27.03.2011 20:49
Клиент файл принимает но не сохраняет D_E_N Работа с сетью в Delphi 11 06.08.2009 18:30