re: 正則表達式——一點小插曲 Fox 2008-05-08 12:39
正要看看正則表達式,不妨寫詳細點,參考一下:D
還是寫出來看的清楚:static unsigned int __stdcall ThreadFunc( void *p )
{
Listener *listener = (Listener*) p;
應該是
Listener *listener = (App*) p;
re: 編程之美:一摞烙餅的排序(未完成) Fox 2008-04-23 17:56
我的本意是找一種最優算法,可惜數學基礎太差,對各種算法及其復雜性的計算力不從心……
re: 編程之美:一摞烙餅的排序(未完成) Fox 2008-04-22 12:38
你這個在我文中給出來了,基于冒泡排序的思想。
次數不能達到最少。
re: 編程之美:一摞烙餅的排序(未完成) Fox 2008-04-21 20:21
這個問題,如果有哪位TX實現了,給個鏈接我去學習一下,如果只是簡單給出分析的話,就未必經得住推敲了……
老師教我、爹媽生我、朋友幫我、共產黨哺育了我、全國人民感染了我……
re: 編程之美:中國象棋將帥問題 Fox 2008-04-19 15:05
re: 編程之美:中國象棋將帥問題 Fox 2008-04-18 11:15
@Xin
輸出的都有啊:-),總共81-3×3×3=54種合法位置。
給的圖也很清楚啊,看不清的話,直接查看原圖吧:D。
re: 編程之美:中國象棋將帥問題 Fox 2008-04-18 11:01
我還是中規中矩的按照題目的要求去考慮如何只用一個變量、一個循環實現。寫完了,貼上來才看到書上的幾種方案,本來想寫N>=3的一個統一算法,后面考慮了一下,有點麻煩,也未必能實現,就算了。
另一個就是本來想加一個宏的實現,效率又高,而且一個變量都不用。就一個OUTPUT。
#define OUTPUT CALC(3)
#define CALC(N) ....
#define ...
本質上還不如上面的代碼。后面覺得有點偷奸耍滑的味道,算了。
樓上說的方法也是些“奇技淫巧”了,后來看了下書上的,居然還有用結構體變量的,我心想:成員變量就不是變量了?
re: 2008-02-15買了新車! Fox 2008-04-09 23:44
如果在成都就好了……
之所以保留諸多術語,是為了以后加到論文里方便,但仔細看的話,還是可以看得懂的,如果懂點數論知識的話,更好。
re: 網絡游戲安全思考——偽隨機數篇 Fox 2008-04-03 10:40
@Kevin Lynx
Xn+1 = (a*Xn+b)mod c
a, b, c通常是素數(僅僅是通常),說白了,這樣一個線性同余函數其實就是所謂的Hash函數,選值不是固定不變的,ms Knuth的編程藝術(Vol. 2?)中對a, b, c的選取原則有提供。
@len
馬氏回轉是比較快的了,只是不是密碼學安全的算法。
@杜中偉
沒有考慮過遺傳算法、模糊理論、神經網絡能否提供真正隨機的實現。不過這個倒是可以考慮,個人感覺上面幾種即使實現起來,效率是個問題。
1、是指繼續完成新的wsarecv。
2、我的理解是socket和wsasocet的區別只是wsasocket可以自由決定是否使用重疊I/O,和阻塞與否沒有關系。
3、恩,應該是允許auto才對。
4、你讓我不得不把一個本來認為理解了的問題思考再思考,的確有壓力!
re: 不怕無知,但怕無畏 Fox 2008-03-27 13:40
@yafare
來這兒的每個人都是有大腦的,回復的人更是經過大腦才說過的話。
我個人感覺我這篇blog和回復沒有任何惡意,而且初衷也是讓自己有時間反思一下自己,可以說,主要是寫給自己的。
但很多回復的朋友認為我是炫耀或者故意刁難,我實在冤枉。
re: 不怕無知,但怕無畏 Fox 2008-03-27 13:31
@yafare
沒有看過crt源碼
至于給出的代碼沒有考慮首地址對齊,是因為我看過云風的這篇blog,上面對于4B以上,沒有首地址對齊的匯編。
而且VC默認結構成員對齊是8B,所以就把前面一點去掉了。
如果真看過這樣源碼的我還不會去問了,就像我沒有看過memcpy和memmove(當然,剛才看了),我只是給出自己的理解,我自己還是偏向于問題的思考重于知識的學習。所以你提到mmx、sse、crt源碼,可以展示知識面的廣和深,卻不能完全滿足對人的考察,當然,如果對這個點能夠掌握這樣的知識,至少可以說明他動過腦子了。
;memcpy.asm - contains memcpy and memmove routines
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;
;Purpose:
; memcpy() copies a source memory buffer to a destination buffer.
; Overlapping buffers are not treated specially, so propogation may occur.
; memmove() copies a source memory buffer to a destination buffer.
; Overlapping buffers are treated specially, to avoid propogation.
;memcpy - Copy source buffer to destination buffer
;
;Purpose:
; memcpy() copies a source memory buffer to a destination memory buffer.
; This routine does NOT recognize overlapping buffers, and thus can lead
; to propogation.
; For cases where propogation must be avoided, memmove() must be used.
;
; Algorithm:
;
; void * memcpy(void * dst, void * src, size_t count)
; {
; void * ret = dst;
;
; /*
; * copy from lower addresses to higher addresses
; */
; while (count--)
; *dst++ = *src++;
;
; return(ret);
; }
;
;memmove - Copy source buffer to destination buffer
;
;Purpose:
; memmove() copies a source memory buffer to a destination memory buffer.
; This routine recognize overlapping buffers to avoid propogation.
; For cases where propogation is not a problem, memcpy() can be used.
;
; Algorithm:
;
; void * memmove(void * dst, void * src, size_t count)
; {
; void * ret = dst;
;
; if (dst <= src || dst >= (src + count)) {
; /*
; * Non-Overlapping Buffers
; * copy from lower addresses to higher addresses
; */
; while (count--)
; *dst++ = *src++;
; }
; else {
; /*
; * Overlapping Buffers
; * copy from higher addresses to lower addresses
; */
; dst += count - 1;
; src += count - 1;
;
; while (count--)
; *dst-- = *src--;
; }
;
; return(ret);
; }
這是給出的基本的算法,都是bytecopy的,但具體的實現不是這樣子的。
下面是匯編實現,考慮對齊的。
; - move x = ((4 - Dest & 3) & 3) bytes
; - move y = ((L-x) >> 2) dwords
; - move (L - x - y*4) bytes
crt源碼:
while (count--) {
*(char *)dst = *(char *)src;
dst = (char *)dst + 1;
src = (char *)src + 1;
感覺沒有使用dwordcopy。
對于memcpy這個問題,看不看crt源碼和匯編,相信很多人在我寫過這篇文章和前面的回復之后都可以知道怎么實現了。
對于技術批評,我會虛心,尤其是和你們的討論過程中,我還特意看了crt源碼和生成的匯編,所以,非常感謝,以后如果再跟別人講問題的時候,自己還是要把問題搞得頗為清楚才好。
但對于人身攻擊和做人問題,我就恕難忍受了。
re: 不怕無知,但怕無畏 Fox 2008-03-26 10:55
一天兩天懷不上,是正常的,可以接受的。
如果100天都懷不上,你是不是還有性趣?
re: 不怕無知,但怕無畏 Fox 2008-03-26 10:53
照樓上的意思,我該怎么做?
我只想找個可以干活的人,妄談其他都是多余的。
如果找老婆只為傳宗接代,是不是生育能力最重要呢?你告訴我感情可以培養、孩子可以領養,不都TM扯淡呢嗎?
re: 如何反外掛? Fox 2008-03-24 09:04
其情也肯肯
其言也鑿鑿
re: 不怕無知,但怕無畏 Fox 2008-03-21 12:47
@yafare
不怕無知,但怕無畏,我也不是沒栽過,也不是沒被BS過,雖然資質愚鈍,但我一直在努力,如果真愿意做技術,有人給你指出來,你應該懷著感恩的心:)
re: 不怕無知,但怕無畏 Fox 2008-03-21 09:45
@raof01
是的,所以我開始并沒有想去追問一些問題。現在提出來也只是討論一下一個程序員對于編碼應該有的態度。
我個人一直認為,一個項目的成功,需要幾個對C/C++(其他語言也一樣)編碼抱著像對女人一樣的感覺,如果你不是真的愛她,就不要說愛她,如果你只是喜歡她,也不要說愛她。因為你可以喜歡很多女人,但你只會愛上一個,這一點符合編譯原理上講的局部性法則。
如果你只是把它當作一碗飯吃,我就會很不爽了。
當然,我只是一個純粹做技術的,而且做的不純。語言風格只是對事不對人:),請大家不要人身攻擊啊,我很無辜:)
re: 不怕無知,但怕無畏 Fox 2008-03-21 09:31
@cppexplore
一語中的
如果答案寫成這樣,我也會很高興了,起碼是能夠從不同的角度解決問題:P
#define my_memcpy memcpy
re: 不怕無知,但怕無畏 Fox 2008-03-21 08:55
@adsf:不怕無知,但怕無畏,我也不是沒栽過,也不是沒被BS過,雖然資質愚鈍,但我一直在努力,如果真愿意做技術,有人給你指出來,你應該懷著感恩的心:)
@kacy16
主要就是字節對齊和DWORD(4B) copy。
字節對齊主要體現在首地址不是4的倍數和尾部不足4B的情況處理,這種情況下,你只能按Byte copy了。
@cppexplore
其實如果代碼寫多了,這個問題應該是每個人都會不自覺得去想的,或者就算不想,也該有自己的一個想法。
re: 最近接觸的東西 Fox 2008-03-13 02:49
模式倒是不錯,模板沒感覺。你也沒有給出自己的理由,只是說別人這樣做的:)
我的理由:
1、語言工作者要提供面向所有coder的需求實現,而你我充其量是對著3、5個人,而這3、5個人尚且×××;
2、不用模板和高級特性能實現的很好的東西,如果沒有特別的通用、高效、安全的考慮,沒必要讓其他coder花幾個月去學習并使用它們,因為你寫出那些code都是在學習了很久之后,除非你能把他們封裝的像stl那樣讓人忘記他們,甚至不讓cloudwu指出詬病;
3、在跨平臺還是一個很遙遠的東西的時候,沒必要寫一個通用庫,畢竟,MS、IBM、SUN都不用一個線程庫,如果真有像socket那么NB、那么perface的東西,為什么大家不要一個呢?
4、設計本身最重要。
5、over。。。
又快3點了,我日。。。。。
PS: 忘了說了,我居然第一個來了。。。榮幸之至!
re: 很久沒有這種感覺了 Fox 2008-03-07 16:25
@浪跡天涯
成都的一家游戲公司;)
re: 很久沒有這種感覺了 Fox 2008-03-07 02:25
不怕無知,就怕無畏。
——說給自己聽的:)。
昨天主要是把BS搭起來了,順便寫了個dll,被Bugs無情的pass了,先BS一下他,然后把更多的BS留給自己。
今天起來之后主要把消息補充完整……
@kevin lynx
nonblock io >> overlapped io >> iocp
不知這樣說明白沒有;)
re: 再談sizeof()的問題 Fox 2008-03-05 10:28
問題出在union的對齊上面,要按照單位最長的成員對齊。。。。
學習了
re: 再談sizeof()的問題 Fox 2008-02-29 23:57
int 4
union 20
c 10
34
如果考慮4字節對齊,應該是36
re: 網絡游戲安全思考——IPSec篇 Fox 2008-02-29 09:22
@xingd
不是;)
re: 網絡游戲安全思考——反外掛篇 Fox 2008-02-27 21:10
@ood
分析的很有道理!
根據玩家情況(支付CDKey費用與否)調整爆率,這個思路更加靈活,3X!
:)
re: 網絡游戲安全思考——反外掛篇 Fox 2008-02-27 10:53
@abettor
一旦客戶端被逆向,分析網絡協議是很簡單的事情了,因為對協議的解讀是在客戶端也有的。
re: 網絡游戲安全思考——反外掛篇 Fox 2008-02-27 08:56
@eating
ascent和脫機掛沒有關系,提到這個純粹是為了提醒自己找時間查查。
re: 網絡游戲安全思考——反外掛篇 Fox 2008-02-26 21:16
聽一位網友提到WOW的ascent,有時間查查資料:)。
re: 反外掛的一點牢騷 Fox 2008-02-15 09:15
只要能解包,隨機的怪物客戶端是可以知道的,而且太隨機對玩家的體驗也要差很多(老是變的話,玩家會難以適應),尤其是對韓式打錢、打怪升級的網游來說更是如此。
re: 反外掛的一點牢騷 Fox 2008-01-26 09:03
@ood
就像樓上說的,封IP是不行的。
@汪江濤
驗證碼技術和圖像識別技術相生相克,很難根本消除外掛。至于你后面說的方法,感覺也是治標不治本,因為只是讓外掛的選擇空間沒有那么大,還是沒有辦法防止外掛登入。
所以問題的關鍵是:如何防止外掛登入?
提個建議,不要用摘要方式發文吧?每看一篇文章都要點擊鏈接進來,不方便。
re: 今天完成了下線通知功能 Fox 2008-01-25 09:21
這一塊應該屬于服務器的功能,下線通知和視野內玩家通信基本都是消息分發實現吧?
re: 異步回調的一種封裝 Fox 2008-01-23 13:17
恩,其實很多都是借鑒os lib里面的思想,放在項目中具體實現以供自己使用的。
因為角色的關系,并沒有過多研究這些庫的源碼。。。不好不好。。。
re: 門窺多線程安全 Fox 2008-01-14 14:48
@ms.gofixiao
恩,因為畢竟不是對多線程的技術要點都有一個全面的把握,所以要想好好寫,也不容易。。
re: LOD地形設計(一) Fox 2008-01-14 11:21
3d地形,一般8叉樹多些,關注一下。。。。。
re: 圣誕:西嶺雪山行 Fox 2008-01-11 18:37
@江水獸
哈哈,我現在回過頭去看當時,覺得那個時候的文筆真好……
現在是怎么都寫不出來了,可能是工作了,人也俗了,GF就經常說我,現在只知道工作……
汗一個。
re: 門窺多線程安全 Fox 2008-01-11 18:17
@漂泊者
也沒有多深入,只是想在年輕的時候做點事情……
今天看到幾句話,很有道理,與各位辛勤工作的朋友共勉:
不能餓了才吃,不能渴了才喝,不能困了才睡,不能累了才歇,不能病了才檢查。
re: 門窺多線程安全 Fox 2008-01-11 18:16
@minidxer
是啊,平時工作比較辛苦,出去玩一玩,放松一下啊 :)
re: 門窺多線程安全 Fox 2008-01-11 18:15
@mugong
現在不想在blog里寫帶代碼的東西,精力太有限了,只想在這兒放松一下,還請原諒 :(
re: 一個快速開方的函數 Fox 2008-01-10 04:19
不僅僅是位運算的問題,還涉及到float與int的存儲對位問題 :|
re: 門窺多線程安全 Fox 2008-01-10 04:11
因為今明兩天要去雅安碧峰峽一游,所以,沙發留給自己了,也對到這兒的兄弟們有個交代……