用户使用函数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
则表示服务器接受客户端的请求并准备就绪
接着,客户端便可以将命令字符串通过套接字发送到服务器执行