Windows szerver 2012 vagy újabb.

Indította Csedwik, 2016-03-06, 13:09:16

2016-03-06, 13:09:16 Utolsó szerkesztés: 2016-03-06, 13:15:33 Szerző: Outsider100
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?
Skype:Csedwik

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...)
Ha nem látod a válaszom, valamit elrontottál:

2016-03-06, 13:28:08 #3 Utolsó szerkesztés: 2016-03-06, 13:38:40 Szerző: Outsider100
Kiindulásképpen gyors felpakolom virtualboxba a wserver 2012-t, aztán meglátjuk mennyire oké ez az egész.

Nagyon el vagyok :D

Skype:Csedwik

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)
Ha nem látod a válaszom, valamit elrontottál:

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
Skype:Csedwik

Téma újra adott, hátha azóta lettek fejlemények. Bélával épp beszélek és gondolkodom rajta.
Skype:Csedwik

2016-09-23, 20:20:47 #11 Utolsó szerkesztés: 2016-09-23, 20:23:22 Szerző: Pisti95
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