以下代码是来自server.c的代码段
void list(int s)
{
vector<data> getList = readContent();
string output = "";
ostringstream conv;
for(int j = 0; j < readContent().size(); j++)
{
conv << getList[j].record;
output += conv.str();
output += " ";
output += getList[j].fName;
output += " ";
output += getList[j].lName;
output += " ";
output += getList[j].phoneNum;
output += "\n";
send(s, (char *)output.c_str(), strlen((char *)output.c_str()), 0);
}
}
readContent为我提供了一个带有值(record,fname,lname和phonenum)的结构数组
数组中的当前数据是:
1000 steve kit 212
1001 joe smo 12
1002将walt 33
以下代码是来自client.c的代码段
/* main loop; get and send lines of text */
while (fgets(buf, sizeof(buf), stdin)) {
buf[MAX_LINE -1] = '\0';
len = strlen(buf) + 1;
send (s, buf, len, 0);
recv (s, rbuf, sizeof(rbuf), 0);
printf(rbuf);
}
套接字已正确设置,但它不会将数据发送到客户端进行打印,是否有人知道出了什么问题?
答案 0 :(得分:1)
readContent
正在从哪里读取数据?因为这条线看起来非常可疑
for(int j = 0; j < readContent().size(); j++)
当然应该是
for(int j = 0; j < getList.size(); j++)
因为否则你将多次打电话给readContent
。