Как серверу принять n-e количество чисел?
Хочу сделать так: клиент вводит, сколько чисел он хочет передать серверу. Дальше он вводит нужное количество чисел, и сервер их получает и выводит.
Я пытался реализовать это так: Код сервера
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#pragma comment (lib, "ws2_32.lib")
#include <winsock2.h>
#include <iostream>
#include<string>
using namespace std;
char buff[256];
int main()
{
setlocale(LC_ALL, "rus");
WSADATA wsaData;
SOCKET serverSocket, clientSocket;
sockaddr_in serverAddr, clientAddr;
int clientAdressSize = sizeof(clientAddr);
int number;
WSAStartup(MAKEWORD(2, 2), &wsaData);
serverSocket = socket(AF_INET, SOCK_STREAM, 0);
serverAddr.sin_addr.s_addr = INADDR_ANY;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(8080);
bind(serverSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
listen(serverSocket, 1);
clientSocket = accept(serverSocket, (struct sockaddr*)&clientAddr, &clientAdressSize);
recv(clientSocket, buff, sizeof(buff), 0);
cout<<"Должно быть передано " << buff<<"числа" << endl;
int count = int(buff);
for (int i = 1;i < count;i++)
{
recv(clientSocket, buff, sizeof(buff), 0);
cout << buff << endl;
}
return 0;
}
Код клиента:
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#pragma comment (lib, "ws2_32.lib")
#include<string>
#include <winsock2.h>
#include <iostream>
#define _CRT_SECURE_NO_WARNING
using namespace std;
char buff[256];
int main()
{
setlocale(LC_ALL, "rus");
WSADATA wsaData;
SOCKET clientSocket;
sockaddr_in serverAddr;
WSAStartup(MAKEWORD(2, 2), &wsaData);
clientSocket = socket(AF_INET, SOCK_STREAM, 0);
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(8080);
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(clientSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
int count;
cout << "Напишите, сколько чисел передать серверу: ";
cin >> count;
send(clientSocket,to_string(count).c_str(),sizeof(to_string(count)),0);
for (int i = 0;i < count;i++)
{
int n;
cout << "Введите число: ";
cin >> n;
send(clientSocket, to_string(n).c_str(), sizeof(to_string(count)), 0);
}
strcpy_s(buff,order.c_str());
send(clientSocket, buff, sizeof(buff), 0);*/
return 0;
}
Однако мое решение не сработало: сервер не выводит присланные ему числа. Что можно сделать, чтобы сервер принял n-е количество чисел?