Вопрос: Первая рабочая версия VBNet.RU Offline Client! | Добавлено: 01.04.05 15:28 |
Автор вопроса: ![]() |
Свершилось! Увидела свет первая рабочая версия VBNet.RU Offline Client моего авторства! Сегодня, в 15:13, была скомпилирована первая полностью рабочая версия долгожданного клиента, который позволит скачивать с форума только новые посты и просматривать их локально, что создает намного большее удобство при работе с форумом и значительно (в 4-5 раз) экономит траффик. Программа представляет собой HTTP-сервер на 1234-м порту, предоставляющий через броузер удобный гипертекстовый интерфейс для чтения форума и добавления сообщений. Для тестирования (версия сырая, но очевидных багов нету) скачайте и распакуйте следующий архив - http://regsetup.narod.ru/svbnrufoc.rar (32КБ), после чего запустите файл svbnrufoc.exe (от Sharp VBNet.RU Forum Offline Client), ваш любимый броузер (тестировалось под Avant Browser и Internet Explorer) и наберите в адресной строке "http://127.0.0.1:1234/" (без кавычек) и перед вами появятся дальнейшие инструкции по работе с программой.
Тем не менее, это ни в коей мере не сигнал sne и Ко прекращать работу, поскольку программа написана на Microsoft Visual C++, и не все форумчане смогут понять исходники (если кому нужны, выложу в ближайшее время, после приведения к читабельному виду :)) Возможно, эта программа, пока не готов клиент от sne, останется единственной возможностью читать форум vbnet.ru |
Ответы | Всего ответов: 22 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 176176951 Вопросов: 14 Ответов: 655 |
Профиль | Цитата | #1 | Добавлено: 01.04.05 15:50 |
Круто!
Всем качать!!! |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 50804884 Вопросов: 72 Ответов: 642 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 01.04.05 15:51 |
Хм а ведь она не запускается, точнее запускается и в памяти висит, больше ничего. WinXPPro, SP2 |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 01.04.05 16:05 |
freeloader, еще раз:
1. Cкачайте и распакуйте следующий архив - http://regsetup.narod.ru/svbnrufoc.rar (32КБ) 2. Запустите файл svbnrufoc.exe 3. Запустите ваш любимый броузер 4. Наберите в адресной строке "http://127.0.0.1:1234/" (без кавычек) 5. Перед вами появятся дальнейшие инструкции по работе с программой. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 50804884 Вопросов: 72 Ответов: 642 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 01.04.05 16:11 |
А нуда заработала, классная прога, вот уже ответ с помощью нее пишу ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 01.04.05 16:15 |
Шутник ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() Разработчик Offline Client Вопросов: 164 Ответов: 1317 ![]() |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 01.04.05 16:50 |
Что-то меня первое апреля в этом году раздражает. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 01.04.05 18:54 |
Когда читал топик, сразу не верилось, что это правда, т.к. 32K на VС++ и одним файлов это более чем маловато (я сравниваю с тем, что ваяется в vbnet). А мысля классная - работать в собственном web-браузере с форумом через localhost. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() Разработчик Offline Client ICQ: 204034 Вопросов: 106 Ответов: 1919 |
Профиль | Цитата | #8 | Добавлено: 02.04.05 07:34 |
Шутник блин ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 02.04.05 09:14 |
Когда читал топик, сразу не верилось, что это правда, т.к. 32K на VС++ и одним файлов это более чем маловато Гы, маловато. Я, между прочим, взял Debug-версию, потому что Release уж слишком мало весил, и CRT-код не удалял.
|
Номер ответа: 10 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 02.04.05 15:48 |
debug 32 кб? невозможно... |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 02.04.05 20:07 |
Не думал, что что-то в этом топике меня больше может разозлить, чем второй ответ, но ты, DaSharm, бесспорно, талант. Написано же - RAR-архив размером 32 КБ. Разве несжатые проограммы, помещенные в архив, не становятся меньше? |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 224 Ответов: 3777 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 02.04.05 21:17 |
Ещё показалось подозрительным 1234 порт ![]() ![]() |
Номер ответа: 13 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 02.04.05 21:53 |
32K на VС++ и одним файлов это более чем маловато
ты слепой?Я нет, я читал твой же QUOTE, где mc-black не говорил об архиве, а о файле. Не смотрел свойства файла этого сервера, уровня детского садика, времени не было. но я бы не удивился, если бы ты сначала UPX'ом сжал до 33 кб, а потом заархивил до 32 кб RAR'ом, всеравно ты бы птом ещё на 3 страницы доказывал, что ты прав... |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 224 Ответов: 3777 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 02.04.05 23:14 |
приложение весит 124 кб.
2Sharp: не кинешь исходник? |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 02.04.05 23:56 |
32K на VС++ и одним файлов это более чем маловато Где здесь написано, что один файл EXE?
не кинешь исходник? Что там интересного?
#include <string.h>
#include <winsock.h> #include <windows.h> #define PROJ_NAME "vbnrufoc" #pragma comment (lib, "wsock32.lib" ![]() int nclients = 0; const SOCKET_VERSION = 0x101; void WINAPI ThreadProc(LPVOID client_socket); class HTTP{ public: HTTP(){ WSADATA wsaData; WSAStartup(SOCKET_VERSION, &wsaData); } ~HTTP(){ WSACleanup(); } void StartServer(int Port, DWORD WINAPI pFunc(LPVOID my_sock)){ SOCKET my_sock; my_sock = socket(AF_INET, SOCK_STREAM, 0); sockaddr_in local_addr; local_addr.sin_family = AF_INET; local_addr.sin_port = htons(Port); local_addr.sin_addr.s_addr = 0; if(!bind(my_sock, (sockaddr *)&local_addr, sizeof(local_addr))){ listen(my_sock, 0x100); SOCKET client_socket; sockaddr_in client_addr; int client_addr_size = sizeof(client_addr); while((client_socket = accept(my_sock, (sockaddr *)&client_addr, &client_addr_size))){ DWORD thID; CreateThread(NULL, NULL, pFunc, &client_socket, NULL, &thID); } } closesocket(my_sock); } char *GetRequest(LPVOID client_socket, char *Request, unsigned long lRequest){ SOCKET my_sock; my_sock=((SOCKET *) client_socket)[0]; unsigned long all_bytes = 0; unsigned long bytes_recv = 0; while(bytes_recv != SOCKET_ERROR && all_bytes < lRequest){ bytes_recv = recv(my_sock, &Request[all_bytes], lRequest - all_bytes, 0); all_bytes += bytes_recv; if((all_bytes >= 4 && (Request[all_bytes-1] == 10 && Request[all_bytes-2] == 13 && Request[all_bytes-3] == 10 && Request[all_bytes-4] == 13)) || all_bytes == lRequest) break; } Request[all_bytes+1] = 0; return Request; closesocket(my_sock); } void SendResponse(LPVOID client_socket, char *Response, unsigned long lResponse){ SOCKET my_sock; my_sock=((SOCKET *) client_socket)[0]; send(my_sock, Response, lResponse, 0); closesocket(my_sock); } }; char *transform(char *str){ for(int i=0; str[i]; i++) str[i] ^= 0x80; return str; } DWORD WINAPI ClientProc(LPVOID client_socket){ char Request[10240]; unsigned long lRequest = sizeof(Request); //char Response[10240] = "HTTP/1.1 200 OK\nAccept-Ranges: bytes\nContent-Length: 647\nContent-Type: text/html; charset=WINDOWS-1251\n\n<html><head><title>С первым апреля!</title></head><body>\n<h1>С первым апреля!</h1><hr>\nНа первое апреля выполнен следующий объем работ:\n<ol>\n<li>Написан код перевода XML в БД программы\n<li>Написан код HTTP-сервера (его скомпилированную часть вы лицезреете)\n<li>Написан объект, реализующий удобную работу с БД\n<li>Создана БД форума vbnet.ru, содержащая свыше 67000 постов\n</ol>\nОсталось:\n<ol>\n<li>Объединить HTTP-сервер и работу с БД в одной программе\n<li>Написать код получения данных с сервера vbnet.ru\n<li>Написать код преобразования данных из БД в HTML-вывод имитатора форума\n<li>Протестировать всю программу\n</ol><a href="http://127.0.0.1:1234/iwanttoexit">Завершить программу</a></body><html>\n"; char Response[10240] = "ИФФРЇ±®± І°° ПЛЌЉБггерфТбозеує вщфеуЌЉГпофеофМеозфиє ·±¶ЌЉГпофеофФщреє фешфЇифнм» гибтуефЅЧЙОДПЧУ±Іµ±ЌЉЌЉјифнмѕјиебдѕјфйфмеѕQ oepb{l `opekЎјЇфйфмеѕјЇиебдѕјвпдщѕЌЉји±ѕQ oepb{l `opekЎјЇи±ѕјитѕЌЉM` oepbne `opek b{onkmem qkeds~yhi nazel p`anrєЌЉјпмѕЌЉјмйѕM`ohq`m jnd oepebnd` ШНМ b AD opncp`ll{ЌЉјмйѕM`ohq`m jnd ИФФРqepbep` Ёecn qjnlohkhpnb`mms~ w`qr| b{ khvegpeere©ЌЉјмйѕM`ohq`m nazejr¬ pe`khgs~yhi sdnams~ p`anrs q ADЌЉјмйѕQngd`m` AD tnpsl` цвоеф®тх¬ qndepf`y` qb{xe ¶·°°° onqrnbЌЉјЇпмѕЌЉNqr`knq|єЌЉјпмѕЌЉјмйѕNazedhmhr| ИФФРqepbep h p`anrs q AD b ndmni opncp`lleЌЉјмйѕM`ohq`r| jnd onkswemh d`mm{u q qepbep` цвоеф®тхЌЉјмйѕM`ohq`r| jnd openap`gnb`mh d`mm{u hg AD b ИФНМb{bnd hlhr`rnp` tnpsl`ЌЉјмйѕOpnreqrhpnb`r| bq~ opncp`llsЌЉјЇпмѕЌЉјб итежЅўиффрєЇЇ±І·®°®°®±є±ІіґЇйчбоффпешйфўѕG`bepxhr| opncp`llsјЇбѕЌЉјЇвпдщѕјифнмѕ"; unsigned long lResponse = sizeof(Response); HTTP MyHTTP; MyHTTP.GetRequest(client_socket, Request, lRequest); if(strstr(Request, "iwanttoexit" ![]() //MessageBox(0, transform(Response), "test", MB_ICONASTERISK); MyHTTP.SendResponse(client_socket, transform(Response), strlen(Response)); return 0; } int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow){ HTTP MyHTTPServer; MyHTTPServer.StartServer(1234, (&ClientProc)); return 0; } |
|