gpt4 book ai didi

c++ - 一个简单的 C++ 邮件服务器

转载 作者:行者123 更新时间:2023-11-28 07:30:48 24 4
gpt4 key购买 nike

我正在尝试使用 C++ 中的套接字制作一个简单的邮件服务器来接收电子邮件并在屏幕上打印。我已经制作了程序,一切看起来都很棒,但不起作用。套接字和线程工作得很好,只需使用 netcat 或 telnet 登录即可查看是否有效,但是当我尝试向程序发送电子邮件时,没有任何反应。

我认为我在处理函数中做错了。看到那个...

void process(int new_sd, void *threadid) {
int tid = (long) threadid;

ssize_t bytes_recieved;
char incomming_data_buffer[1000];

while (1) {
bytes_recieved = recv(new_sd, incomming_data_buffer, 1000, 0);

// if (bytes_recieved == 0) cout << "host shut down." << endl ;
if (bytes_recieved == -1)cout << "Recieve Error! :(" << endl ;
incomming_data_buffer[bytes_recieved] = '\0';

trimwhitespace(incomming_data_buffer);

cout << "|" << incomming_data_buffer << "|" << endl;

if (!strcmp(incomming_data_buffer, "QUIT")) {
close(new_sd);
break;
} else {
send_text(new_sd, "OK \n");
}
}
}

完整的源代码在这里:http://pastebin.com/vLH8dSAj在 Linux 上编译:g++ -lm mail.cpp -o mail

谢谢!

最佳答案

POP3 是一种协议(protocol)(阅读 RFC 1939 ),因此您必须实现它才能使用它。连接后,对方不会向您发送任何信息,直到您发送问候消息(“+OK your message here”)。

之后,您必须与远程客户端建立 POP“对话”。

此外,POP 用于从服务器检索消息,因此客户端将连接到您的进程并尝试下载消息。

您必须实现 SMTP 协议(protocol)(​​阅读 RFC 5321)才能接收发送给您的消息。 SMTP也是一种协议(protocol),如果你想让对方给你发送数据,你必须实现它。

关于c++ - 一个简单的 C++ 邮件服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17766830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com