День добрый всемогущий алл.Необходимо написать прогу для опроса почтового сервера на предмет новых писем по imap. Кое-что нарисовал, но вот проблемка: как отправить серверу несколько сообщений, вначале логин, затем проверку состояния почтового аккаунта и логаут. Одну команду могу отправить (send(sockfd, buf, sizeof(buf), 0). где buf[] = "a1 login test test\r\n"), а если 2 и более (где buf[] = "a1 login test test\r\n a2 logout) не прокатывает. Подскажите как сделать.
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <strings.h>int main () {
int sockfd;
int len;
struct sockaddr_in address;
int result;
char buf[] = "a1 login test test\r\n a2 logout";
char buf1[1024];sockfd = socket(PF_INET,SOCK_STREAM,0);
address.sin_family = PF_INET;
address.sin_addr.s_addr = inet_addr("aaa.aaa.aaa.aaa");
address.sin_port = htons(143);
len = sizeof(address);result = connect(sockfd, (struct sockaddr *) &address,len);
if (result == -1){
perror("oops : client1 ");
exit(1);
}send(sockfd, buf, sizeof(buf), 0);
recv(sockfd, buf1, sizeof(buf1), 0);
printf(buf1);
close(sockfd);
exit(0);
}
>День добрый всемогущий алл.
>
>Необходимо написать прогу для опроса почтового сервера на предмет новых писем по
>char buf[] = "a1 login test test\r\n a2 logout";ну а \r\n после логаута что ставить не надо?
а проверять результат логина тоже не надо что ли?
зачем ты торопишься? хоть протокол и позволяет выдавать несколько одновременных команд, это не значит что их все сразу надо делать.
после logout ставил \r\n не помогает :-)). Вопрос в следующем: посылать следующию команду каким образом, если уж не торопиться???
>после logout ставил \r\n не помогает :-)). Вопрос в следующем: посылать следующию
>команду каким образом, если уж не торопиться???таким же как и предыдущую, а сначала ответа дождаться на a1
Спасибо всем - все завелось. Тема закрыта