Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Сайт

Страница: 1 | 2 |

 

  Вопрос: Первая рабочая версия VBNet.RU Offline Client! Добавлено: 01.04.05 15:28  

Автор вопроса:  Sharp | Web-сайт: sharpc.livejournal.com | ICQ: 216865379 
Свершилось! Увидела свет первая рабочая версия 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
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #1 Добавлено: 01.04.05 15:50
Круто!
Всем качать!!!

Ответить

Номер ответа: 2
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #2
Добавлено: 01.04.05 15:51

Хм а ведь она не запускается, точнее запускается и в памяти висит, больше ничего.

WinXPPro, SP2

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #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
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #4
Добавлено: 01.04.05 16:11
А нуда заработала, классная прога, вот уже ответ с помощью нее пишу :)

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 01.04.05 16:15
Шутник ;)

Ответить

Номер ответа: 6
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #6
Добавлено: 01.04.05 16:50
Что-то меня первое апреля в этом году раздражает.

Ответить

Номер ответа: 7
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #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
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 02.04.05 09:14
Когда читал топик, сразу не верилось, что это правда, т.к. 32K на VС++ и одним файлов это более чем маловато
Гы, маловато. Я, между прочим, взял Debug-версию, потому что Release уж слишком мало весил, и CRT-код не удалял.

Ответить

Номер ответа: 10
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #10
Добавлено: 02.04.05 15:48
debug 32 кб? невозможно...

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 02.04.05 20:07
Не думал, что что-то в этом топике меня больше может разозлить, чем второй ответ, но ты, DaSharm, бесспорно, талант. Написано же - RAR-архив размером 32 КБ. Разве несжатые проограммы, помещенные в архив, не становятся меньше?

Ответить

Номер ответа: 12
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #12
Добавлено: 02.04.05 21:17
Ещё показалось подозрительным 1234 порт :))) не попрограмерски как то... первая моя мысль: "не знаю, может настраивается" :-)

Ответить

Номер ответа: 13
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #13
Добавлено: 02.04.05 21:53
 
32K на VС++ и одним файлов это более чем маловато


ты слепой?Я нет, я читал твой же QUOTE, где mc-black не говорил об архиве, а о файле. Не смотрел свойства файла этого сервера, уровня детского садика, времени не было. но я бы не удивился, если бы ты сначала UPX'ом сжал до 33 кб, а потом заархивил до 32 кб RAR'ом, всеравно ты бы птом ещё на 3 страницы доказывал, что ты прав...

Ответить

Номер ответа: 14
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #14
Добавлено: 02.04.05 23:14
приложение весит 124 кб.
2Sharp: не кинешь исходник?

Ответить

Номер ответа: 15
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #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";) != NULL) ExitProcess(0);
//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;
}

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам