Привет, я пытаюсь создать 2 программы, которые общаются через сокеты TCP на C++. Я знаю, как использовать функции write() и read(), но сталкиваюсь с проблемой, когда пытаюсь отправить массив из одной программы в другую. Чтобы быть более конкретным, я пытаюсь отправить массив символов с одной стороны и прочитать его с другой, но это не работает.
Массив, который я пытаюсь отправить, определяется следующим образом:
char** list=new char[5];
for(int i=0;i<5;i++){
char[i]=new char[25]
}
char[0]="Hello";
char[1]="world";
char[2]="this";
char[3]="is";
char[4]="a test";
и я пишу это в сокет таким образом:
void sendtosocket(.. , char array[]) {
int size=5*sizeof(char[25]);
write(sock, &size, sizeof(int))
write(sock,&array,size);
}
а с другой стороны я пытаюсь прочитать это так:
void readfromsocket(..){
read(sock, &size, sizeof(int));
char test[5][25];
cout<<size<<" bytes must be read"<<endl;
read(newsock,&test,size);
for(int i=0;i<5;i++)
cout<<test[i]<<endl;
}
вывод, который я получаю,
Я должен прочитать 125 байт
Привет
s
тест
Вы можете помочь мне? заранее спасибо! Учтите, что соединения и сокеты работают нормально!