1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "portablesocket.h"
#define PORT 143
int main (int argv, char* argc[]){
if (argv < 2)
{
fprintf(stderr,"\n\t\aERROR use as %s 'serverhost'\n",argc[0]);
exit(EXIT_FAILURE);
}
SOCKADDR_IN SERVER;
struct hostent* IP;
SOCKET sock;
int retour;
char Buffer[128]="a1 login identifiant password";
char Buffer2[128]="a2 select inbox";
if ((IP = gethostbyname(argc[1])) == NULL)
{
printf("gethostbyname() failed\n");
exit(EXIT_FAILURE);
}
SERVER.sin_family = AF_INET;
SERVER.sin_addr = *((struct in_addr *)IP->h_addr);
SERVER.sin_port = htons(PORT);
printf("tentative de connexion IMAP sur %s : %d ...\n", IP->h_name, PORT);
sock=socket(AF_INET, SOCK_STREAM, 0);
if (sock == INVALID_SOCKET)
{
printf("socket() failed\n");
exit(EXIT_FAILURE);
}
if (connect(sock, (SOCKADDR*)&SERVER, sizeof(SOCKADDR) ) == SOCKET_ERROR)
{
printf("connect() failed\n");
exit(EXIT_FAILURE);
}
printf("connexion IMAP etablie sur %s : %d !\n", IP->h_name, PORT);
retour = send(sock,Buffer,sizeof(Buffer),0 );
if (retour == SOCKET_ERROR)
{
printf("send() failed\n");
}
printf("paquet %s envoye\n",Buffer);
retour = recv(sock,Buffer,sizeof(Buffer),0 );
if (retour == SOCKET_ERROR)
{
printf("recv() failed\n");
}
printf("reponse : %s\n",Buffer);
retour = send(sock,Buffer2,sizeof(Buffer2),0 );
if (retour == SOCKET_ERROR)
{
printf("send() failed\n");
}
printf("paquet %s envoye\n",Buffer2);
retour = recv(sock,Buffer2,sizeof(Buffer2),0 );
if (retour == SOCKET_ERROR)
{
printf("recv() failed\n");
}
printf("reponse : %s\n",Buffer2);
return(EXIT_SUCCESS);
} |
Partager