이 코드는 소켓을 사용하는 "대화방"프로그램에 포함되어 있습니다. 그것은 클라이언트 (myFD)에서 읽고 전면에 사용자 이름을 추가하는 것입니다.
그러나 쓰기 버퍼에 여분의 문자를 쓰는 데 문제가 있습니다. 지난 번에 보낸 내용은 여전히 저장되어 있습니다.너무 많은 문자를 쓰는 C++ 소켓
예를 들어, 처음으로 나는
UN을 보내 (제대로 쓰기) 것 : 안녕하세요.
그러나
는 두 번째 시도에서, 나는 쓸 줄 때, 말, 보낸 메시지가 될 것 "NOT"UN :
cout을 문 NOTlo 제대로 " cout의 "끝에"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);
}
감사합니다!
'\ 0'을 현재 문자열의 끝에 붙이면됩니다. btw cout은 C++ – technosaurus