방금 Poco 라이브러리를 시작했고 전자 메일 프로그램을 만들려고했습니다 (거의 알지 못했습니다). 다음은 내 코드입니다 (이 내가 지금까지 만난 사람 이외의 그것과 다른 문제가 될 수 있지만 난 그냥 작업을 시작 할 수있다)Poco는 SMTPClientSession.login 후에 중지합니다.
int main(int argc, char** argv)
{
Poco::Net::SocketAddress add("smtp.gmail.com:465");
Poco::Net::StreamSocket sock(add);
Poco::Net::SMTPClientSession sess(sock);
std::cout << "-";
sess.login(
"gmail.com",
Poco::Net::SMTPClientSession::AUTH_LOGIN,
"----",
"----"
);
Poco::Net::MailMessage msg;
Poco::Net::MailRecipient resp(Poco::Net::MailRecipient::PRIMARY_RECIPIENT,"[email protected]");
msg.addRecipient(resp);
std::string content("HELP SOS");
msg.encodeWord(content);
std::cout << msg.getContent() << "-";
}
내가 디버거로 이동, 그것까지 잘 실행 sess.login에 도착하면 갑자기 작은 막대가 나타납니다. 코드가 사라졌지만 프로그램이 계속 실행됩니다 (그 의미를 알만큼 충분히 경험하지 못했습니다). 내가 실제로 넣은 책자는 실제로 인쇄되지 않습니다. 디버거는 그 행을 지나치지만 아무 것도 나타나지 않습니다. 조금만 지나면 다음과 같이 표시됩니다.
terminate called throwing an exception
그래서 어떻게 될까요?
, 당신은 너무 줄 바꿈을하려면 버퍼, 또는'표준 : endl'를 세척하는'표준 : flush'를 사용합니다. –
감사합니다. 버퍼가 자동으로 플러시되지 않는 이유는 무엇입니까? –
버퍼링 되었기 때문에 ... :) 속도 문제로 매번 문자를 출력 할 때마다 효과적이지 않습니다. 자동으로 플러시되기 전에 그것을 채워야합니다. 그리고 아니요, 버퍼의 크기를 알지 못합니다. 옴 구현에 의존하며 지정되지 않았습니다. –