Visual C++网络编程经典案例详解 第7章 邮件收发器 接收邮件 代码分析

对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)+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值