• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 96  文章 - 255  trackbacks - 0
            <2008年4月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            E-mail:zbln426@163.com QQ:85132383 長(zhǎng)期尋找對(duì)戰(zhàn)略游戲感興趣的合作伙伴。

            常用鏈接

            留言簿(21)

            隨筆分類

            隨筆檔案

            SDL相關(guān)網(wǎng)站

            我的個(gè)人網(wǎng)頁

            我的小游戲

            資源下載

            搜索

            •  

            積分與排名

            • 積分 - 492113
            • 排名 - 38

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            06 2010 檔案
            徹底解密C++寬字符:6、國(guó)際化策略(完)      摘要: 硬編碼的硬傷——補(bǔ)救——Windows的策略——Linux的策略——跨平臺(tái)策略——gettext策略——更多  閱讀全文
            posted @ 2010-06-26 19:55 lf426 閱讀(3566) | 評(píng)論 (4)  編輯
            徹底解密C++寬字符:5、利用fstream轉(zhuǎn)換      摘要: C++的流和本地化策略集——basic_filebuf——利用fstream實(shí)現(xiàn)寬窄轉(zhuǎn)換  閱讀全文
            posted @ 2010-06-26 16:40 lf426 閱讀(3108) | 評(píng)論 (0)  編輯
            徹底解密C++寬字符:4、利用codecvt和use_facet轉(zhuǎn)換      摘要: locale和facet——codecvt——內(nèi)部編碼和外部編碼——CodecvtFacet的in()和out()——演示程序源代碼——use_facet  閱讀全文
            posted @ 2010-06-26 13:39 lf426 閱讀(8792) | 評(píng)論 (2)  編輯
            徹底解密C++寬字符:3、利用C運(yùn)行時(shí)庫函數(shù)轉(zhuǎn)換      摘要: std::locale——mbstowcs()和wcstombs()——寬窄轉(zhuǎn)換函數(shù):string和wstring之間的轉(zhuǎn)換。  閱讀全文
            posted @ 2010-06-26 11:17 lf426 閱讀(2980) | 評(píng)論 (1)  編輯
            徹底解密C++寬字符:2、Unicode和UTF      摘要: Unicode和UCS——Unicode和UTF——UTF-8和Windows GB2312——UTF-16和UCS-2——UTF-32和UCS-4——BOM  閱讀全文
            posted @ 2010-06-25 21:51 lf426 閱讀(3614) | 評(píng)論 (1)  編輯
            徹底解密C++寬字符:1、從char到wchar_t      摘要: 從字符到整數(shù)——本地化策略集(locale)——C/C++的編譯策略——寬字符 wchar_t  閱讀全文
            posted @ 2010-06-25 14:41 lf426 閱讀(21111) | 評(píng)論 (6)  編輯
            socket 編程入門教程(六)UDP應(yīng)用:2、UDP版的Echo Client      摘要: 我們將UDP版的doEcho()也設(shè)計(jì)成返回bool:true表示循環(huán)繼續(xù);false表示關(guān)閉客戶端。  閱讀全文
            posted @ 2010-06-12 12:11 lf426 閱讀(3710) | 評(píng)論 (2)  編輯
            socket 編程入門教程(六)UDP應(yīng)用:1、UDP版的Echo Server      摘要: 這里跟TCP有些細(xì)微的差別。在TCP中,recv()返回0表示連接正常斷開,而UDP中沒有連接和斷開的概念,recv()或者recvfrom()返回0表示收到一個(gè)0字節(jié)大小數(shù)據(jù)的數(shù)據(jù)報(bào)。另外,因?yàn)門CP是一對(duì)一連接的,所以一旦連接上,TCP服務(wù)器只能處理來自一個(gè)客戶端的echo請(qǐng)求(后面會(huì)講到多線程的使用,就可以讓TCP同時(shí)處理多個(gè)客戶端了);而UDP服務(wù)器則可以處理來自任何客戶端的echo請(qǐng)求,為了返回信息到正確的客戶端,我們的策略是,接收一個(gè)UDP數(shù)據(jù)包后,馬上刷新發(fā)送目標(biāo)地址為上一次接收地址,然后再回發(fā)數(shù)據(jù),所以這里每次多了一個(gè)重新指定發(fā)送目的地的函數(shù)。  閱讀全文
            posted @ 2010-06-12 11:16 lf426 閱讀(2486) | 評(píng)論 (2)  編輯
            socket 編程入門教程(五)UDP原理:5、預(yù)讀MSG_PEEK      摘要: 因?yàn)閁DP是按數(shù)據(jù)包接收的,我們?cè)诮邮罩安⒉恢肋@個(gè)數(shù)據(jù)包有多大。一個(gè)策略是,我們準(zhǔn)備足夠大的應(yīng)用程序緩存以免出錯(cuò),但是這個(gè)“足夠大”的概念是建立在我們對(duì)傳送的數(shù)據(jù)事先有了解的情況下,比如是我們自己設(shè)計(jì)服務(wù)器端和客戶端并且制定應(yīng)用層協(xié)議;另外一種策略是,將一個(gè)數(shù)據(jù)包的相關(guān)信息記錄在數(shù)據(jù)包的前面的一些字節(jié)中,比如說大小,這樣,我們可以通過預(yù)讀數(shù)據(jù)包的前面一段,得到這個(gè)數(shù)據(jù)包的相關(guān)信息,比如說大小,然后再安排緩存。  閱讀全文
            posted @ 2010-06-11 13:30 lf426 閱讀(5407) | 評(píng)論 (1)  編輯
            socket 編程入門教程(五)UDP原理:4、“有連接”的UDP      摘要: 雖然UDP是無連接的,但是也可以通過調(diào)用connect()將本地的UDP socket FD與一個(gè)遠(yuǎn)程的UDP socket FD連接起來。  閱讀全文
            posted @ 2010-06-11 11:51 lf426 閱讀(2189) | 評(píng)論 (0)  編輯
            socket 編程入門教程(五)UDP原理:3、UDP的系統(tǒng)緩存隊(duì)列      摘要: UDP的系統(tǒng)緩存隊(duì)列與TCP的相比,有兩點(diǎn)顯著的不同:
            1、UDP沒有SendQ。UDP的數(shù)據(jù)包不會(huì)被處理,通過調(diào)用sendto()(或者在connect()之后也可以調(diào)用send())將數(shù)據(jù)直接發(fā)送。
            2、UDP的數(shù)據(jù)在緩存隊(duì)列中是有邊緣保證的。  閱讀全文
            posted @ 2010-06-11 11:18 lf426 閱讀(3038) | 評(píng)論 (0)  編輯
            socket 編程入門教程(五)UDP原理:2、設(shè)計(jì)UDP client類      摘要: TCP之所以有個(gè)服務(wù)器,是因?yàn)門CP的客戶端只能和自己的服務(wù)器端通訊。而UDP的客戶端可以與任何一個(gè)UDP端口通訊——只要知道對(duì)方的地址(IP地址和UDP端口)就可以發(fā)送數(shù)據(jù)包。  閱讀全文
            posted @ 2010-06-10 19:37 lf426 閱讀(1723) | 評(píng)論 (0)  編輯
            socket 編程入門教程(五)UDP原理:1、設(shè)計(jì)UDP server類      摘要: 人們通常用電話連線來說明TCP協(xié)議,而UDP協(xié)議,則常常用郵遞來做比喻。與TCP有連接的信息傳輸方式不同,UDP協(xié)議被認(rèn)為是對(duì)底層IP協(xié)議簡(jiǎn)單的擴(kuò)展:協(xié)議并不保證每個(gè)數(shù)據(jù)包都會(huì)到達(dá)目的地,也不保證到達(dá)的順序,而僅僅就是“盡力”的發(fā)送每一個(gè)數(shù)據(jù)包。  閱讀全文
            posted @ 2010-06-10 12:16 lf426 閱讀(2905) | 評(píng)論 (0)  編輯
            迭代器(iterator)“擦”(erase)出的錯(cuò)誤      摘要: 在我們遍歷查找對(duì)等值的循環(huán)中,一開始v.end()指向第10個(gè)元素(數(shù)值為9)的后面一個(gè)位置(不存在的第11個(gè)元素的位置)。當(dāng)?shù)髦赶虻?0個(gè)元素(數(shù)值為9)的時(shí)候,v.erase()生效運(yùn)行;下一輪循環(huán)中,迭代器本來應(yīng)該指向第11個(gè)元素的位置,并且等于v.end()并結(jié)束循環(huán)。但是,因?yàn)槲覀儾恋袅藇ector中的一個(gè)元素,v.end()指向的是現(xiàn)在的最后一個(gè)元素——第9個(gè)元素的后面,也就是第10個(gè)元素的位置。這樣,迭代器到了11,而判斷確是其是否到10,這將永遠(yuǎn)無法實(shí)現(xiàn),形成了一個(gè)邏輯bug,所以系統(tǒng)拋出錯(cuò)誤了。  閱讀全文
            posted @ 2010-06-10 11:03 lf426 閱讀(1673) | 評(píng)論 (1)  編輯
            socket 編程入門教程(四)TCP應(yīng)用:2、構(gòu)建echo客戶端      摘要: echo客戶端的工作原理也很簡(jiǎn)單:
            1、向服務(wù)器端發(fā)送一個(gè)字符串;
            2、接收服務(wù)器的返回信息(如果是echo服務(wù)器就會(huì)返回發(fā)送出去的字符串本身)。
            3、在標(biāo)準(zhǔn)輸出中回顯服務(wù)器返回的信息。  閱讀全文
            posted @ 2010-06-08 11:49 lf426 閱讀(2276) | 評(píng)論 (1)  編輯
            socket 編程入門教程(四)TCP應(yīng)用:1、構(gòu)建echo服務(wù)器      摘要: echo服務(wù)器的工作原理很簡(jiǎn)單:
            1、接收客戶端傳來的信息;
            2、將接收到的信息原封不動(dòng)的返回給客戶端。  閱讀全文
            posted @ 2010-06-08 10:56 lf426 閱讀(3194) | 評(píng)論 (3)  編輯
            socket 編程入門教程(三)TCP原理:7、TCP連接的關(guān)閉      摘要: TCP的連接建立需要3次握手,而正常關(guān)閉則需要4次握手。  閱讀全文
            posted @ 2010-06-07 20:58 lf426 閱讀(2943) | 評(píng)論 (0)  編輯
            socket 編程入門教程(三)TCP原理:6、字節(jié)流的發(fā)送與接收      摘要: 在socket機(jī)制中,應(yīng)用層的程序以send()函數(shù)將數(shù)據(jù)首先發(fā)送到本機(jī)系統(tǒng)的發(fā)送緩存中,我們稱之為SendQ,意指這是一個(gè)FIFO(先進(jìn)先出)的隊(duì)列。這個(gè)緩存是系統(tǒng)決定的,并不是在我們的程序中指定的。然后socket機(jī)制負(fù)責(zé)將SendQ中的數(shù)據(jù)以字節(jié)為單位,按照順序發(fā)送給對(duì)方的接收緩存RecvQ中。RecvQ也是一個(gè)屬于系統(tǒng)的FIFO緩存隊(duì)列。在收信息的另外一邊,當(dāng)RecvQ沒有數(shù)據(jù)時(shí),recv()就會(huì)阻塞(默認(rèn)情況下),每當(dāng)有數(shù)據(jù)可接收,recv()就會(huì)返回實(shí)際接收到的數(shù)據(jù)長(zhǎng)度。  閱讀全文
            posted @ 2010-06-07 20:09 lf426 閱讀(4022) | 評(píng)論 (1)  編輯
            socket 編程入門教程(三)TCP原理:5、TCP的三次握手(three-way handshake)      摘要: TCP的三次握手過程如下:
            1、第一個(gè)SYN連接請(qǐng)求由客戶端發(fā)起,這個(gè)數(shù)據(jù)報(bào)將SYN設(shè)置為1表示是一個(gè)連接請(qǐng)求,并且包含著這次連接的ISN,我們假設(shè)其值為n。
            2、服務(wù)器端收到第一次握手請(qǐng)求的數(shù)據(jù)報(bào)后開始構(gòu)建反饋的數(shù)據(jù)報(bào)。反饋數(shù)據(jù)報(bào)包括兩個(gè)部分:第一部分是將連接請(qǐng)求的序號(hào)反饋回去,因?yàn)镾YN本身占了一個(gè)字節(jié),所以反饋回去的序號(hào)就是n+1;第二部分是自己也向客戶端發(fā)起SYN連接請(qǐng)求,也將SYN設(shè)置為1,并包含這個(gè)新連接的ISN,我們?cè)O(shè)其值為m。
            3、客戶端回應(yīng)服務(wù)器端的SYN連接請(qǐng)求,將服務(wù)器端到客戶端連接的序號(hào)反饋回去,因?yàn)镾YN占了一個(gè)字節(jié),所以反饋給服務(wù)器端的序號(hào)是m+1。  閱讀全文
            posted @ 2010-06-07 13:16 lf426 閱讀(3027) | 評(píng)論 (0)  編輯
            socket 編程入門教程(三)TCP原理:4、設(shè)計(jì)TCP socket的類(下)      摘要: TCPClientSock的建立和第三次握手。  閱讀全文
            posted @ 2010-06-07 00:46 lf426 閱讀(1850) | 評(píng)論 (1)  編輯
            socket 編程入門教程(三)TCP原理:3、設(shè)計(jì)TCP socket的類(中)      摘要: TCPServerSock的建立和“第二次握手”。  閱讀全文
            posted @ 2010-06-06 23:46 lf426 閱讀(1689) | 評(píng)論 (0)  編輯
            socket 編程入門教程(三)TCP原理:2、設(shè)計(jì)TCP socket的類(上)      摘要: socket是一個(gè)int的文件描述符(WinSock中直接是一種抽象的描述符),我們通過對(duì)這個(gè)描述符發(fā)出指令操作socket。這是C語言的思想,在面向?qū)ο蟮乃枷胫校詈胹ocket本身是一種對(duì)象,各種方法由對(duì)象本身發(fā)出。用面向?qū)ο蟮乃枷敕庋bsocket并不困難,而且,對(duì)于描述socket的概念可能更加直觀,這一節(jié),我們邊介紹socket和TCP的概念邊對(duì)socket進(jìn)行OO封裝。
            (上)基類和監(jiān)聽socket。  閱讀全文
            posted @ 2010-06-06 22:24 lf426 閱讀(3872) | 評(píng)論 (1)  編輯
            socket 編程入門教程(三)TCP原理:1、socket異常信息      摘要: sokcet本身屬于系統(tǒng)(OS),是系統(tǒng)對(duì)TCP/IP的實(shí)現(xiàn),也就是說,socket發(fā)出的異常信息不代表程序出錯(cuò),甚至不代表系統(tǒng)出錯(cuò),而僅僅就是代表socket本身的各種異常情況。  閱讀全文
            posted @ 2010-06-06 21:07 lf426 閱讀(3963) | 評(píng)論 (0)  編輯
            用對(duì)象的成員函數(shù)引出線程,還是在線程中創(chuàng)建對(duì)象?      摘要: 所以,如果我們?cè)O(shè)想構(gòu)造一個(gè)類,這個(gè)類的對(duì)象可以調(diào)用包含this的線程,那么這個(gè)對(duì)象一定不能是局部變量,或者說,我們必須在循環(huán)的{}對(duì)之前先把這些對(duì)象構(gòu)造出來。或者說,如果我們希望用類來封裝線程,那么這些可以調(diào)用線程的對(duì)象必須是全局的。  閱讀全文
            posted @ 2010-06-05 21:06 lf426 閱讀(796) | 評(píng)論 (0)  編輯
            在多線程中拋出的異常出錯(cuò)?      摘要: 所以,一個(gè)解決方法是,凡是遇到新的線程,必須在新線程中重新寫異常處理。不然,就如google代碼標(biāo)準(zhǔn)里所說的那樣,不使用C++的異常機(jī)制。畢竟C++沒有定義多線程的標(biāo)準(zhǔn),所以也就無從說起多線程中異常處理的標(biāo)準(zhǔn)。  閱讀全文
            posted @ 2010-06-05 20:16 lf426 閱讀(2644) | 評(píng)論 (2)  編輯
            socket 編程入門教程(二)win32下使用socket:WinSock      摘要: 接下來的教程我會(huì)兼顧winsock的代碼,這主要是因?yàn)閣insock本身對(duì)socket幾乎是兼容的。所以,這里有必要先說明在VC環(huán)境中使用socket的一些簡(jiǎn)單設(shè)置,以及與Linux環(huán)境下的細(xì)微差別。  閱讀全文
            posted @ 2010-06-03 10:37 lf426 閱讀(6563) | 評(píng)論 (0)  編輯

            久久久久亚洲精品无码网址| 国产午夜福利精品久久2021| 国产精品女同久久久久电影院| 亚洲精品久久久www| 久久这里有精品视频| 国内精品免费久久影院| 久久99精品久久久久久9蜜桃| 亚洲午夜久久影院| 国产福利电影一区二区三区,免费久久久久久久精 | 日本欧美久久久久免费播放网 | 三级片免费观看久久| 国产精品美女久久久久av爽| 99久久国产主播综合精品| 国产精品青草久久久久福利99| 久久精品夜色噜噜亚洲A∨| 久久久无码精品午夜| 思思久久好好热精品国产| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 色综合久久综精品| 久久久久亚洲精品中文字幕| 2021国产精品午夜久久| 久久综合香蕉国产蜜臀AV| 四虎国产精品免费久久5151| 国内精品久久久久久不卡影院 | 精品久久久久久无码中文野结衣| 国产午夜精品久久久久九九电影| 久久九九久精品国产免费直播| 青青草原综合久久大伊人| 国内精品久久久久久99| 久久精品一区二区三区中文字幕| 超级碰碰碰碰97久久久久| 国产精品毛片久久久久久久| 久久无码国产| 国内精品久久久久| 亚洲国产香蕉人人爽成AV片久久 | 亚洲欧美成人久久综合中文网| 亚洲αv久久久噜噜噜噜噜| 26uuu久久五月天| 亚洲精品无码专区久久久| 精品久久国产一区二区三区香蕉| 91麻豆国产精品91久久久|