您好,我正在尝试在 C++ 上创建 2 个通过 TCP 套接字进行通信的程序。我知道如何使用 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
测试
你能帮助我吗?提前致谢!考虑到连接和套接字工作正常!