![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 29.04.2016
Сообщений: 1
|
![]()
Прошёлся отладчиком по клиенту. Выяснил, что клиент принимает пустую строку, хотя сервером эти данные не отправляются.
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); } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сервер принимает пакеты если клиент указывает неверный порт получателя 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 |