Kellemes vasárnap délutánt!
Olyan kérdésem lenne felétek, hogy egyre azon gondolkodom, hogy nem FreeBSD-t kéne használni élesbe, hanem windows servert. Számomra, kicsit könnyebb használni, mert tanultam is róla.[spoiler]Ez részlet kérdés, ki mihez ért.[/spoiler]
Mivel ugye visual studióba fordítom a forrásfájlokat meg fordult a fejembe, hogy ez az egy "cmd" ablak el vinné simán élesbe a szervert?Biztonsági réseket nem tudom mennyire, de szerintem ugyan úgy megoldható, sőt. Érdekelne a véleményetek, hogy nem unix hanem windows alapon futnának a dolgok. Szerintetek?
Ha már Windows Server-t akarsz, akkor Windows SF-el is összehozhatod a dolgot. Éppen múlthéten magyaráztam ezt egy bangladesi gyereknek. ;D
Persze egyszerűbb, de akkor úgy kell levédened, amivel igazán nem foglalkoztam, mert én maradnék a FreeBSD alapon.
Nos éles windowsos szervert még nem láttam, szóval fogalmam sincs, hogy terhelés alatt hogyan fut, viszont amivel lehetne gyorsítani, az a cmd ablakba történő "printek" kiszedése, mivel az nagyon tudja lassítani a folyamatot (lásd indítás). Egyébként erre már én is gondoltam, szerintem működhet, csak ki kéne próbálni valahogyan azért élesben is. (Én is sokkal jobban szeretem a windowsosat, kézenfekvőbb, könnyebb debugolni, stb...)
Kiindulásképpen gyors felpakolom virtualboxba a wserver 2012-t, aztán meglátjuk mennyire oké ez az egész.
Nagyon el vagyok :D
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FXCHLgxG.png&hash=da02bd2a15a0f5c2271554251cd2db8870561597)
Idézetet írta: masodikbela Dátum 2016-03-06, 13:24:07
viszont amivel lehetne gyorsítani, az a cmd ablakba történő "printek" kiszedése, mivel az nagyon tudja lassítani a folyamatot (lásd indítás).
Erre lennék kíváncsi, hogy hogyan szeded ki a "printek"-et? ;D
Teljesítményben alul fog maradni a win szerver, hiszen eleve több memóriát és cpu-t használ, és ha még telepítesz is rá ezt-azt, akkor azok a háttérben futkorászva csökkentik a teljesítményed. Elég sok ilyen teszt van a neten (nyílván nem metin-el teszteltek), de nem windows specifikus alkalmazás futtatásakor egyértelmű hogy linux/freebsd jobb teljesítményt nyújt windowsnál.
Idézetet írta: Pisti95 Dátum 2016-03-06, 14:37:28
Idézetet írta: masodikbela Dátum 2016-03-06, 13:24:07
viszont amivel lehetne gyorsítani, az a cmd ablakba történő "printek" kiszedése, mivel az nagyon tudja lassítani a folyamatot (lásd indítás).
Erre lennék kíváncsi, hogy hogyan szeded ki a "printek"-et? ;D
Ha megkeresed azt a részt, ahol a syserreket/syslogokat írja (sys_log/sys_err funkció azthiszem) abban benne van, hogy ha windowsos a szerver, akkor printf-elje a dolgot (bsdnél azért nem látod, mert ott kivették)
Windows szerver esetén a random szám generálás is egy elég érdekes történet.
Erre akkor jöttem rá mikor tanácstalanul álltam a hatalmas drop előtt, holott a lehető legkisebbre lett beállítva(GF like), majd belenéztem a questlib.lua fájlba és...
-- This function will return true always in window os,
-- but not in freebsd.
-- (In window os, RAND_MAX = 0x7FFF = 32767.)
function drop_gamble_with_flag(drop_flag)
local dp, range = pc.get_killee_drop_pct()
local dp = 40000 * dp / (game.get_event_flag(drop_flag) or 100)
if dp < 0 or range < 0 then return false end
return dp >= number(1, range)
end
libthecore projectben kell ütyködni.
#nem-ajánlom-a-win-szervert-livera
Èn nekem tesztre kellene csak, èn jobban szeretem a FreeBSD alapot. A dropp nagy rèszèt èn úgy suedtem ki, hogy etc_drop_item.txt-t ès ezeket kiürítettem, mert èn visszaraktam txt protokra.
Köszi masodikbela, majd akkor megnèzem ha megtalálom. ;)
Akkor sajnos teljesen értelmetlen windows alapra építeni egy komolyabb szervert. Akkor marad a wsf csak munkára. Köszönöm a válaszokat --> egyértelmű nem
Téma újra adott, hátha azóta lettek fejlemények. Bélával épp beszélek és gondolkodom rajta.
Idézetet írta: masodikbela Dátum 2016-03-06, 18:48:28
Ha megkeresed azt a részt, ahol a syserreket/syslogokat írja (sys_log/sys_err funkció azthiszem) abban benne van, hogy ha windowsos a szerver, akkor printf-elje a dolgot (bsdnél azért nem látod, mert ott kivették)
Erre gondolsz?
utils.cpp:
void set_global_time(time_t t)
{
global_time_gap = t - time(0);
char time_str_buf[32];
snprintf(time_str_buf, sizeof(time_str_buf), "%s", time_str(get_global_time()));
sys_log(0, "GLOBAL_TIME: %s time_gap %d", time_str_buf, global_time_gap);
}
syslog-ba:
Sep 21 22:00:13 :: GLOBAL_TIME: Sep 21 22:00:13 time_gap 0
Sep 21 22:01:11 :: GLOBAL_TIME: Sep 21 22:01:11 time_gap 0
Sep 21 22:02:10 :: GLOBAL_TIME: Sep 21 22:02:10 time_gap 0
Sep 21 22:03:09 :: GLOBAL_TIME: Sep 21 22:03:09 time_gap 0
Sep 21 22:04:08 :: GLOBAL_TIME: Sep 21 22:04:08 time_gap 0
Sep 21 22:05:07 :: GLOBAL_TIME: Sep 21 22:05:07 time_gap 0
Meg erre?
questpc.cpp
void PC::ClearTimer()
{
sys_log(0, "QUEST clear timer %d", m_TimerMap.size());
TTimerMap::iterator it = m_TimerMap.begin();
while (it != m_TimerMap.end())
{
CancelTimerEvent(&it->second);
++it;
}
m_TimerMap.clear();
}
syslog:
Sep 21 23:14:55 :: QUEST clear timer 0
Sep 21 23:14:55 :: QUEST clear timer 0
Nope.
A libthecore->src->log.c-be van:
#ifndef __WIN32__
void _sys_err(const char *func, int line, const char *format, ...)
{
va_list args;
time_t ct = time(0);
char *time_s = asctime(localtime(&ct));
struct timeval tv;
int nMiliSec = 0;
gettimeofday(&tv, NULL);
char buf[1024 + 2]; // \nŔ» şŮṞ́â Ŕ§ÇŘ..
int len;
if (!log_file_err)
return;
time_s[strlen(time_s) - 1] = '\0';
len = snprintf(buf, 1024, "SYSERR: %-15.15s.%d :: %s: ", time_s + 4, tv.tv_usec, func);
buf[1025] = '\0';
if (len < 1024)
{
va_start(args, format);
vsnprintf(buf + len, 1024 - len, format, args);
va_end(args);
}
strcat(buf, "\n");
// log_file_err żˇ Ăâ·Â
fputs(buf, log_file_err->fp);
fflush(log_file_err->fp);
// log_file_sys żˇµµ Ăâ·Â
fputs(buf, log_file_sys->fp);
fflush(log_file_sys->fp);
}
#else
void _sys_err(const char *func, int line, const char *format, ...)
{
va_list args;
time_t ct = time(0);
char *time_s = asctime(localtime(&ct));
char buf[1024 + 2]; // \nŔ» şŮṞ́â Ŕ§ÇŘ..
int len;
if (!log_file_err)
return;
time_s[strlen(time_s) - 1] = '\0';
len = snprintf(buf, 1024, "SYSERR: %-15.15s :: %s: ", time_s + 4, func);
buf[1025] = '\0';
if (len < 1024)
{
va_start(args, format);
vsnprintf(buf + len, 1024 - len, format, args);
va_end(args);
}
strcat(buf, "\n");
// log_file_err żˇ Ăâ·Â
fputs(buf, log_file_err->fp);
fflush(log_file_err->fp);
// log_file_sys żˇµµ Ăâ·Â
fputs(buf, log_file_sys->fp);
fflush(log_file_sys->fp);
fputs(buf, stdout);
fflush(stdout);
}
#endif
Ez a kód blokk
Nyilván neked a windows alatt használatos kóddal kell csak foglalkoznod.
Tehát a végén van ez a kettő:
fputs(buf, stdout);
fflush(stdout);
Ezt a kettőt kommentezd ki, mert ahogy látom csak ezek foglalkoznak a stdout (standard kimenet, jelen esetben a game konzol ablaka).
ASSZEM. ^.^
De én nem értek ehhez már páran leírták itt fórumon #kawaiiface