我在 struct 中创建了一个字符串数组,并且它是共享的。
结构如下:
struct data{
int uids[5];
int sockids[5];
int stat[30];
char msgs[30][1024];
};
这是写作部分,我可以在 printf 上看到字符串。
for (int i = 0; i < bufSize; i++) {
if ((*d).stat[i] == -1) {
(*d).stat[i] = sockid;
memset(&((*d).msgs[i][0]), 0, strlen(d->msgs[i]));
strncpy((*d).msgs[i], buf,1023);
printf("\nwriting for me %d %s\n",sockid,d->msgs[i]);
return 1;
}
}
从同一区域读取:
for(int i=0;i<bufSize;i++){
if((*d).stat[i]==mysocket){
(*d).stat[i]=-1;
printf(" message for me %d %d %s\n",mysocket,d->stat[i],d->msgs[i]);
fflush(stdout);
send(mysocket,(*d).msgs[i],strlen((*d).msgs[i]),0);
memset(&((*d).msgs[i][0]), 0, strlen(d->msgs[i]));
}
}
在阅读部分我有时会变得空白......
样本输出..:
为我写信 6 36753 : 发送一些信息
给我的消息 6 -1
有时消息来了,有时它是空白的。谁能指出错误是什么。