C++ 通过Telnet在base64中发送映像

C++ 通过Telnet在base64中发送映像,c++,base64,telnet,C++,Base64,Telnet,我目前正在为学校做一个项目,遇到了通过Telnet发送大量数据的问题。如果我发送的信息小于10KB,就可以了。但是,如果我发送的消息超过10KB,我会在运行几分钟后收到以下错误“501语法错误-行太长” 是否有人知道有更好的方法来实现我要实现的目标,最好使用send()?正在发送的数据是base64中图像的5页(Word) 谢谢,非常感谢您的帮助 下面是我目前正在使用的代码部分,它们可以处理少量数据 char *MailContents = new char[20000000]; std::i

我目前正在为学校做一个项目,遇到了通过Telnet发送大量数据的问题。如果我发送的信息小于10KB,就可以了。但是,如果我发送的消息超过10KB,我会在运行几分钟后收到以下错误“501语法错误-行太长”

是否有人知道有更好的方法来实现我要实现的目标,最好使用send()?正在发送的数据是base64中图像的5页(Word)

谢谢,非常感谢您的帮助

下面是我目前正在使用的代码部分,它们可以处理少量数据

char *MailContents = new char[20000000];

std::ifstream in("C:\\test.txt");
std::string MailData((std::istreambuf_iterator<char(in)),std::istreambuf_iterator<char>()); 
//The following streams in the data into MailData() from a .txt file.


memcpy(MailContents, MailData.c_str(), MailData.length()); //This takes the data and copies it to MailContents
strcat(MailContents, "\r\n");

send(Connection, MailContents, strlen(MailContents), 0); //The following line will take the data in MailContents and echo it to the Telnet data section to be sent.

send(Connection, ".\r\n", strlen(".\r\n"), 0); //This line terminates the data entry and sends it.
char*MailContents=新字符[20000000];
std::ifstream in(“C:\\test.txt”);

std::string MailData((std::istreambuf_iteratorHmya,这是一个失败的鲸鱼。大多数base64解码器都不介意字符串中额外的换行和/或回车控制代码。Telnet客户端对此更挑剔,他们在调用rcve()时不使用
char buffer[infinite]
)。拆分。例如,如果您试图实现SMTP客户端,那么它有行长度限制,您必须相应地拆分长行:@Hans Passant谢谢您的输入。@Remy Lebeau,也谢谢您,拆分它是指将其分为多个部分(一个部分,一封电子邮件)发送吗顺便说一下,我是通过SMTP客户端发送这个数据的。@ EZYASASTON:我的意思是在逻辑边界插入断线。SMTP具有1000字符的行长度限制,但是MIME有76字符的行长度限制,等等,并且您必须小心,不要在字的中间插入一个断线,一个编码字节,等等。文章了解更多信息: