该代码使用套接字嵌入在“聊天室”程序中。它正在从客户端(myFD)读取并成功地将用户名附加到前面。
但是,我在写入缓冲区中写入额外字符时遇到问题。上次发送的内容仍然存储并发送。
例如,我第一次发送(并正确写入)
联合国:你好。
但是在第二次尝试时,当我写“NOT”时,发送的消息将是:
联合国:NOTlo
cout 语句正确地是“cout's”,最后没有“lo”,但客户端在最后收到“lo”。我忽略了一些简单的事情吗?
下面的代码:
while ( (amount_read = read(myFD, buffer, 1024)) > 0)
{
total = 0;
strcpy(second, "");
strcpy(second, username);
total += unLength;
strcat(second, ": ");
total += 2;
strcat(second, buffer);//, amount_read);
total += amount_read;
cout << second << endl;
write(myFD, second, total);
}
谢谢!