Visual C++网络编程经典案例详解 第7章 邮件收发器 SMTP会话过程 发送命令与接收响应 发送SMTP命令 将命令DATA发送到服务器

本文详细解析了如何使用send()函数向SMTP服务器发送命令。通过定义命令字符串和网络地址结构,建立套接字并连接到服务器,成功发送了'DATA'命令。若服务器返回220响应码,则表示其已准备好接收客户端命令。

用户使用函数send()将命令DATA发送到服务器

char *send; 
CString str="DATA\r\n"; //定义命令字符串
sockaddr_in addr; //定义网络地址结构对象

addr.sin_family=AF_INET; //为地址结构中的成员赋值
addr.sin_port=htons(25);
host=gethostbyname("mail.163.com"); //从服务器名获取主机地址
addr.sin_addr.S_un.S_addr=inet_addr(host->h_addr_list[0]);
//设置SMTP服务器的地址
s=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//创建套接字
if(connect(s,(sockaddr*) &addr,sizeof(addr)))
//连接SMTP服务器
{
	recv(s,(LPSTR)recvbuff,3,0);//接收响应码前3位数字
	if(recvbuff[0]=220)//提示用户服务器就绪
	{
		send=str.GetBuffer(1); //获取字符串首地址
		send(s,&send,sizeof(send),0); //发送字符串
	}
}

实例程序中
用户首先发送连接请求到服务器并且等待服务器的响应
如果返回的响应码是220
则表示服务器接受客户端的请求并准备就绪
接着,客户端便可以将命令字符串通过套接字发送到服务器执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值