Вот держи!
взодные параметры - поп сервер, имя, пасс
Код:
//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
|