vovksextra
СitizensТип контенту
Профили
Форум
Календарь
Все, що було написано vovksextra
-
Выложил 2.0.1.1 Добавил try except при изменени свойств,методов и при их чтении
-
Выложил 2.0.1.0 Реализована возможность изменять данные пользователя читаем rtf,смотрим в тексте ert и пробуем.
-
Во время непосредственного обновления достаточно сделать кнопки для работы с пользователем (Новый,Редактировать,Удалить) просто неактивными. И при открытии окна редактирования - таймер для автообновления - отключать Что-то типа того.
-
Выложил в 2.0.0.2 читаем readmy.!!!,history.txt
-
К концу недели научу писать все поля кроме нескольких (Login,PingTime,LastCash ........), кроме 6-ти
-
Выложил в "шапке" версию 2.0.0.1 читает все данные пользователя. тестим ))
-
пока не спешите ничего делать пишу полную компоненту
-
Убрал я все вызовы WSACleanup из всех методов класса NETTrans - "затык" остался ((((( значит где-то в другом месте нужно рыть (((
-
Смотри снова первый пост.Перевыложил.
-
Значит так запустил в режиме отладки Обновляется список пользователей в это время мы запускаем изменение параметров затык происходит на вызове int NETTRANSACT::RxHeaderAnswer() здесь мы начинаем принимать данные от сервера. но пока мы до этого дошли произошел где-то раньше nt.disconnect который вызвал WSACleanup. короче в классе NETTRANS нужно избавляться от WSACleanup
-
пардон - согласен, сейчас исходников нету под рукой - но в connect-е поссмотри или вызывается WSACleanup и при каких обстоятельствах в любом случаее это из за этого вызова - глянь
-
WSACleanup() - функция завершает работу программы с библиотекой гнезд Ws2_32.dll. всех гнезд в данном приложении проверь у себя Есть закономерность - жми обновление списка пользователей и пока он обновляется быстренько любому из них добавь некую сумму денег и полезет то о чем писалось потом перенеси nt.disconnect в правильно место и баг исчезнет
-
первое что мы делали пробывали держать открытый сокет и в конфигураторе запустить обновление.процедура обновления "висит",но при освобождении сокета корректно продолжает обновлять список. То-есть запросы на сокет стоят в ожидании и выполняются при достижении своей очереди так как в серверной части используется работа с сокетами в режиме "O_NONBLOCK" для организации многопоточной обработки с сокетами прийдется переделывать очень много кода для каждого соединия создавать свои нити и корректо их обрабатывать - но такая схема сильно усложнит сам код. посему с эти нужно
-
баг найден - готовлю методику исправления. Дело не в listen - он и правду не причем
-
Думаю что res = listen(listenSocket, SOMAXCONN); или res = listen(listenSocket, 16) должно помочь сегодня ночью перекомпилим - завтра скажу
-
совершенно верно )) или просто кто-то долбит порт )) http://local.com.ua/forum/index.php?showtopic=9757&st=135
-
А насчет предложений - разве их здесь кто-то слушает? Постоянно меряемся у кого длинее болт. Хочешь предложений - откажись от текстовых файлов - перейди на бинарные, проблем с поиском не будет - спозиционировался куда нужно и впихнул что нужно. В конце концов откажитесь в финальном релизе от filestorag баг со СТАТАМИ - есть был и будет до тех пор пока вместо поиска баг, будем вести безсмысленный флейм! Посему примите критику, а не отбивайтесь тем что у нас все четко. XML зачем городить? по-поводу XML _ почитай статью умного дядьки http://russian.joelonsoftware.com/Article
-
где-то в коде cfstat.WriteString("RealName", conf.realName); cfstat.WriteString("Group", conf.group); cfstat.WriteDouble("Credit", conf.credit); cfstat.WriteString("TariffChange", conf.nextTariff); прикаждом вызове WriteString внутри процедуры выполянется flush (который постоянно переписыват файл ) - это разве правильно и очень быстро?
-
Сервер не должен завалиться ни при каких входных данных. попробу запустить два конфигуратора с разных машин и одновременно обновить данные !!!!!! по-поводу защиты XML - нужно мне просто сесть потратить свое время и сделать то что ты говришь быть не может. МОЖЕТ ЕЩЕ КАК МОЖЕТ! только давай что-бы это может отобразилось на твоем кармане.ибо сидеть и просто так тебе что-либо доказывать желания нету более.Просто бессмыслица получается и никаких конструктивных решений
-
и еще я считаю совсем не корректно переписывать всегда весь файл при добавлении только одно параметра. int CONFIGFILE::Flush() { fstream f(fileName.c_str(), ios::out); if (!f.is_open()) { error = EIO; return EIO; } it = param_val.begin(); while (it != param_val.end()) { f << it->first << "=" << it->second << endl; it++; } f.close(); return 0; } может там нужно все внимательно пересмотреть ? может баг кроется именно в этом месте? и еще может быть проверить структуру на наличие в ней данных? файл для записи открыли- записали пустоту
-
Если поссмотреть на код if (newud.phone != ud.phone) { WinToKOI(s_koi, newud.phone.c_str(), PHONE_LEN); char enc[PHONE_LEN * 2 + 1]; Encode12(enc, s_koi); sprintf(str, "<phone value=\"%s\"/>", enc); request.push_back(str); } тогда можно для той-же строки ("/><t = 45) или еще какой нибудь деструктивной сделать Decode21 сделать KOIToWin и вписать в поле и будет тоже самое это я о чем. раз коды открыты и у пользователя есть инструмент доступа к серверной части, то не мешало-бы обезопасить сервер от подобный деяний а искать ст
-
Для начала нужно подружить скайстар с фрёй ищи HSD - он участвовал в разработке драйвера под скайстар на фрю. Можешь ему в приват стукнуть. скайстар удалось подружить с фрёй (6.2).
-
думаю что рыть коды смысла нету - самый лучший вариант - перейти на работу с СУБД. ибо самим исправить то что нарабатывалось годами - тяжело будет ))
-
1 я не сишник - но в делфе нужно деструктор самому вызывать в файле confiles.cpp описан деструктор но указателья он явно не закрывает или я что-то не понимаю. CONFIGFILE::~CONFIGFILE() { } Я понимаю так создал класс. (в классе отрыл указатель на файл) поработал с ним (произвел записи по указателю) уничтожил класс (закрыл указатель) Опять же подправьте меня если я не прав вдогонку int CONFIGFILE::WriteString(const string & param, const string &val) { param_val[param] = val; Flush(); return 0; } флуш найден )) только