对SendCmdAndRecv()的功能代码进行分析
自定义函数原型
void SendCmdAndRecv(int x)
如果函数调用成功
将在程序窗口相应的控件中进行显示
该函数含有一个参数x
表示要获取的邮件序列号
用户调用函数时需要指定该参数
一般情况下
当程序启动时
参数x从1开始计数
函数将"RETR"
命令与参数x格式化后再发送到服务器
代码如下
... //省略部分代码
n=x; //将参数值赋予该类中变量n
CString str; //调用字符串用于构造命令
char recvdata[1024]={0},ch[1024],ch2[1024];
//接收数据数组
str.Format("retr d%",n); //格式化字符串
str+="\r\n"; //添加回车换行符
send(s,str.GetBuffer(1),sizeof(str),0); //发送获取邮件命令
... //省略部分代码
在代码中
首先调用字符串对象
然后根据参数将字符串格式化以后
通过函数send()发送到服务器
在格式化命令字符串时
一定需要记住在命令最后必须加上符号"\r\n"
因为这样才能使服务器知道客户端发送的命令结束
如果服务器接收并执行命令以后
将返回客户端所请求的相应邮件内容
这时 客户端程序调用函数recv()进行接收并且在代码中实现数据分析
代码如下
...
if(recv(s,recvdata,1024,0))
{
if(recvdata[] =='O' && recvdata[1]=='K')
{
recvdata[sizeof(recvdata)+