unicode邮件发送程序最后发送quit失败

讨论了在将邮件发送程序从VC6.0移植到VS2008时遇到的问题,特别关注UNICODE编码下发送退出指令时接收不到正确响应的情况,并提供了可能的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

、、、、、、、、、、、、

     // 界尾

     strTmp ="--" ;

     strTmp +=BOUNDARY ;

     strTmp +="--/r/n./r/n" ;

 

     if (send (m_SOCKET ,(CStringA )strTmp ,strTmp .GetLength (),0) == SOCKET_ERROR )

     {

         ReleaseSocket ();

         AfxMessageBox (_T ("error9" ));

         return false ;

     }

     if (!CheckResponse ("250" ))

     {

         AfxMessageBox (_T ("error" ));

         return false ;

     }

     // 退出

     strTmp ="QUIT/r/n" ;

     if (send (m_SOCKET ,/*"QUIT/r/n"*/ (CStringA )strTmp ,strTmp .GetLength (),0) == SOCKET_ERROR )

     {

         ReleaseSocket ();

         return false ;

     }

     if (!CheckResponse ("221" ))

     {

         return false ;

     }

     ReleaseSocket ();

     return true ;

}

BOOL CMail ::CheckResponse (const char * RecvCode )

{

     try

     {

         char Buf [1024]={0};

         if (recv (m_SOCKET ,Buf ,1024,0) == SOCKET_ERROR )

         {

              return false ;

         }

         return RecvCode [0] == Buf [0] && /

              RecvCode [1] == Buf [1] && /

              RecvCode [2] == Buf [2] ? true : false ;

     }

     catch (...)

     {

         return false ;

     }

}

 

我写了一个邮件发送程序在VC6.0上面能够成功运行,现在移植到VS2008上面要使用UNICODE编码,跟踪后一直运行到 // 界尾

都是正常的能够收到250消息,但是发送 // 退出 消息时收不到 221 回应我用抓包工具找到服务器发回来的211bye但是为什么程序

还是出问题呢,是不是最后校验的时候出了问题了还是怎么回事,希望高手能够指点,谢谢!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值