亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2047 | 回復(fù): 1
打印 上一主題 下一主題

socket編寫smtp客戶端問題,困擾我很久! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2004-08-22 11:34 |只看該作者 |倒序?yàn)g覽
  1. #include <iostream>;
  2. #include <string>;
  3. #include <sys/socket.h>;
  4. #include <netdb.h>;
  5. #include <errno.h>;
  6. #include <unistd.h>;

  7. using namespace std;
  8. const int PORT = 25;
  9. int main(void)
  10. {
  11.        
  12.         int sockfd;
  13.         struct sockaddr_in mail_serv_addr;
  14.         struct sockaddr_in mail_clit_addr;
  15.         struct hostent *ser_name;
  16.         char cmd_str[512];
  17.         char server_msg[512];
  18.         memset(&cmd_str,'\0',512);
  19.         memset(&server_msg,'\0',512);

  20.         ser_name = gethostbyname("localhost");
  21.        
  22.         /*建立socket連接*/
  23.         if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
  24.         {
  25.                 fprintf(stderr,"socket error: %s",strerror(errno));
  26.                 exit(1);
  27.         }

  28.         /*客戶端填充內(nèi)容*/
  29.         memset(&mail_serv_addr,'\0',sizeof(struct sockaddr_in));
  30.         mail_serv_addr.sin_family = AF_INET;
  31.         mail_serv_addr.sin_port = htons(PORT);
  32.         mail_serv_addr.sin_addr = *((struct in_addr *)ser_name->;h_addr);
  33.        
  34.         /*連接郵件服務(wù)器*/
  35.         if (connect(sockfd,(struct sockaddr *)&mail_serv_addr,sizeof(struct sockaddr)) < 0)
  36.         {
  37.                 fprintf(stderr,"connect error: %s\n",strerror(errno));
  38.                 exit(1);
  39.         }

  40.         /*連接成功*/
  41.         memset(server_msg,0,512);
  42.         memset(cmd_str,0,512);
  43.         if (read(sockfd,server_msg,512) < 0)
  44.         {
  45.                 fprintf(stderr,"read error!\n");
  46.                 exit(1);
  47.         }
  48.         if (strstr(server_msg,"220") == NULL)
  49.         {
  50.                 fprintf(stderr,"error: %s",server_msg);
  51.                 exit(1);
  52.         }
  53.         else
  54.         {
  55.                 memset(server_msg,0,512);
  56.                 memset(cmd_str,0,512);
  57.                 sprintf(cmd_str,"HELO localhost\r\n");
  58.                 if (write(sockfd,cmd_str,512) < 0)
  59.                 {
  60.                         fprintf(stderr,"write error!\n");
  61.                         exit(1);
  62.                 }
  63.                 if (read(sockfd,server_msg,512) <0)
  64.                 {
  65.                         fprintf(stderr,"read error!\n");
  66.                         exit(1);
  67.                 }
  68.                 if (strstr(server_msg,"250") == NULL)
  69.                 {
  70.                         fprintf(stderr,"error: %s\n",server_msg);
  71.                         exit(1);       
  72.                 }
  73.                 else
  74.                 {
  75.                         memset(server_msg,0,512);
  76.                         memset(cmd_str,0,512);
  77.                         sprintf(cmd_str,"mail from: kofwang@sina.com\r\n");
  78.                         if (write(sockfd,cmd_str,strlen(cmd_str)) < 0)
  79.                         {
  80.                                 fprintf(stderr,"write error: %s\n",strerror(errno));
  81.                                 exit(1);
  82.                         }
  83.                         if (read(sockfd,server_msg,512) < 0)
  84.                         {
  85.                                 fprintf(stderr,"read error: %s\n",strerror(errno));
  86.                                 exit(1);
  87.                         }
  88.                         if (strstr(server_msg,"250") == NULL)
  89.                         {
  90.                                 fprintf(stderr,"error: %s\n",server_msg);
  91.                                 exit(1);
  92.                         }
  93.                         else
  94.                         {
  95.                                 memset(server_msg,0,512);
  96.                                 memset(cmd_str,0,512);
  97.                                 sprintf(cmd_str,"rcpt to: kofwang@hotmail.com\r\n");
  98.                                 if (write(sockfd,cmd_str,512) < 0)
  99.                                 {
  100.                                         fprintf(stderr,"write error: %s\n",strerror(errno));
  101.                                         exit(1);
  102.                                 }
  103.                                 if (read(sockfd,server_msg,512) < 0)
  104.                                 {
  105.                                         fprintf(stderr,"read error: %s\n",strerror(errno));
  106.                                         exit(1);
  107.                                 }
  108.                                 if (strstr(server_msg,"250") == NULL)
  109.                                 {
  110.                                         fprintf(stderr,"error: %s\n",server_msg);
  111.                                         exit(1);
  112.                                 }
  113.                                 else
  114.                                 {
  115.                                         memset(server_msg,'\0',512);
  116.                                         memset(cmd_str,'\0',512);
  117.                                         sprintf(cmd_str,"data\r\n");
  118.                                         if (write(sockfd,cmd_str,512) < 0)
  119.                                         {
  120.                                                 fprintf(stderr,"write error: %s\n",strerror(errno));
  121.                                                 exit(1);
  122.                                         }
  123.                                         if (read(sockfd,server_msg,512) < 0)
  124.                                         {
  125.                                                 fprintf(stderr,"read error: %s\n",strerror(errno));
  126.                                                 exit(1);
  127.                                         }
  128.                                         if (strstr(server_msg,"354") == NULL)
  129.                                         {
  130.                                                 fprintf(stderr,"error: %s\n",server_msg);
  131.                                                 exit(1);
  132.                                         }
  133.                                         else
  134.                                         {
  135.                                                 cout<<"success!"<<endl;
  136.                                                 return 1;

  137.                                         /*書寫郵件*/
  138.                                         }
  139.                                 }
  140.                         }
  141.                 }
  142.         }
  143. }
  144.                                
復(fù)制代碼


將“mail from: kofwang@sina.com"發(fā)送到服務(wù)端后,服務(wù)端返回錯誤,大致意思是無法識別的命令:"",我分析是之前發(fā)送了一個回車給服務(wù)端,可是我找不到回車出自哪里?大家?guī)臀曳治龇治!謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2004-08-22 23:41 |只看該作者

socket編寫smtp客戶端問題,困擾我很久!

我不知道你有沒有認(rèn)真的研究smtp協(xié)議, 而且不知道到你要連接的是郵件發(fā)送服務(wù)器還是郵件接受服務(wù)器!這個過程一般是根據(jù)不同的情況又不同的處理, 而且一般情況下首先會有一個認(rèn)證的過程!我建議你先telnet嘗試做一個真正的實(shí)用過程, 然后在根據(jù)你的情況寫程序!
同時你的這個程序還有很多的地方需要改進(jìn), 比如if嵌套太多了,可以嘗試使用select函數(shù)!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP