Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.
Мне очень ндравится делать всякие штучки в API, так как он более нагляден, прозрачен для меня, а так же экзешнички по-меньше делает :)

так что звиняйте ...
 
 
 
 #define RBC_PORT 80
 
 #define RBC_ADDR "127.0.0.1"
 
 
 
 SOCKET SendSocket;
 
 
 
 int rc;
 
 WSADATA WSAData;
 
 
 
 rc = WSAStartup(MAKEWORD(1, 1), &WSAData);
 
 if(rc != 0) return FALSE;
 
 
 
 struct sockaddr_in srv_address;
 
 int namelen;
 
 
 
 SendSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
 if(SendSocket != INVALID_SOCKET) {
 
 memset(&srv_address,0,sizeof(SOCKADDR_IN));
 
 srv_address.sin_addr.S_un.S_addr=INADDR_ANY;
 
 srv_address.sin_family = AF_INET;
 
 srv_address.sin_port = 0;
 
 }
 
 if(bind(SendSocket, (SOCKADDR *) &srv_address, sizeof(SOCKADDR_IN)) == SOCKET_ERROR) {
 
 closesocket(SendSocket);
 
 return FALSE;
 
 } else {
 
 namelen=sizeof(SOCKADDR_IN);
 
 getsockname(SendSocket,(SOCKADDR *)&srv_address,&namelen);
 
 return TRUE;
 
 }
 
 
 
 
 
 SOCKADDR_IN remoteAddr;
 
 int err;
 
 int iMsg = 0;
 
 int iLength;
 
 int iEnd = 0;
 
 BYTE sBuf[4096];
 
 char *RbcMessage[] =
 
 {
 
 "GET /index.html HTTP/1.0\r\n",
 
 "Accept: */*\r\n",
 
 "Referer: http://www.sources.ru\r\n",
 
 "Accept-Language: ru\r\n",
 
 "Accept-Encoding: gzip, deflate\r\n",
 
 "User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)\r\n",
 
 "Host: www.rbc.ru\r\n\r\n\r\n",
 
 NULL
 
 };
 
 
 
 remoteAddr.sin_family = AF_INET;
 
 remoteAddr.sin_port = htons(RBC_PORT);
 
 remoteAddr.sin_addr.s_addr = inet_addr(RBC_ADDR);
 
 
 
 err = connect (SendSocket, (PSOCKADDR) & remoteAddr, sizeof (remoteAddr));
 
 if(err) {
 
 }
 
 else {
 
 do {
 
 send(SendSocket, (LPSTR)RbcMessage[iMsg], strlen(RbcMessage[iMsg]), 0);
 
 iMsg++;
 
 } while(RbcMessage[iMsg]);
 
 iLength = recv(SendSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
 
 }
 
 closesocket(SendSocket);
 
 
После выполнения ентого примера, переменная sBuf, поидее должна содержать заглавную страничку с запрашиваемого сайта :)

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS