Показать сообщение отдельно

  #5  
Старый 21.10.2005, 15:31
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

Вот держи!
взодные параметры - поп сервер, имя, пасс
Код:
//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include <winsock2.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main(int argc, char* argv[])
{
 if (argc!=4) return 1;
 if(strlen(argv[1])>255||strlen(argv[2])>255||strlen(argv[3])>255) return 2;
 char mess[2048],buff[2048];
 int error;
 //Ñîçäàäèì ñîåäåíåíèå
 SOCKET s;
 struct sockaddr_in addr;
 WSAData data;
 WSAStartup(MAKEWORD(2,1),&data);
 s=socket(AF_INET,SOCK_STREAM,0);
 addr.sin_family=AF_INET;
 addr.sin_port=htons(110);
 hostent *hp = gethostbyname(argv[1]);
 memcpy(&addr.sin_addr, hp->h_addr, hp->h_length);
 memset(&addr.sin_zero,0,sizeof(addr.sin_zero));
 connect(s,(sockaddr*)&addr,sizeof(addr));
 //Îòïðàâëÿåì ñåðâåðó ñîîáùåíèå
 //çàïðîñ - èìÿ
 recv(s,(char*)&buff,sizeof(buff),0);
 strcpy(mess,"USER ");
 strcat(mess,argv[2]);
 strcat(mess,"\n\r");
 error=send(s,mess,strlen(mess),0);
 memset(&buff,0,sizeof(buff));
 error=recv(s,(char*)&buff,sizeof(buff),0);
 if (error==0) {printf("Error!");return 1;};
 if(buff[0]!='+')
   {
    printf("Error:%s\n",argv[2]);
    return 1;
   }
 strcpy(mess,"PASS ");
 strcat(mess,argv[3]);
 strcat(mess,"\n\r");
 error=send(s,mess,strlen(mess),0);
 memset(&buff,0,sizeof(buff));
 error=recv(s,(char*)&buff,sizeof(buff),0);
 if (error==0) {printf("Error!");return 1;};
 if(buff[0]!='+')
   {
    printf("Error:%s\n",argv[3]);
    return 1;
   }
 printf("USER OK!\n");
 strcpy(mess,"QUIT");
 send(s,mess,strlen(mess)+1,0);
 closesocket(s);
 return 0;
}
//---------------------------------------------------------------------------