-1

以下代码是来自 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 史蒂夫套件 212
1001 乔·斯莫 12
1002 将沃尔特 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);
}

套接字设置正确,但它没有将数据发送到客户端进行打印,有谁知道出了什么问题?

4

1 回答 1

1

readContent是从哪里读取数据?因为这条线看起来很可疑

for(int j = 0; j < readContent().size(); j++)

当然应该是

for(int j = 0; j < getList.size(); j++)

因为否则您将readContent多次调用。

于 2013-10-08T20:45:06.257 回答