• <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>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #

                 摘要: 之前開發(fā)酒店廣告投放系統(tǒng)編寫的Http代理服務(wù)程序,功能實(shí)現(xiàn)廣告插播進(jìn)Html DOM結(jié)構(gòu)內(nèi)。一般都是DIV被插入,當(dāng)然包括script都是可以從數(shù)據(jù)庫中動(dòng)態(tài)獲得。簡單修改之后當(dāng)做Http代理服務(wù)器程序,在瀏覽器中設(shè)置Http轉(zhuǎn)發(fā)程序的Ip即可,只要代理程序的機(jī)器能上網(wǎng),客戶機(jī)便能上網(wǎng)(其中涉及Page gzip的工作有點(diǎn)麻煩) Code highlighting produced by Act...  閱讀全文
            posted @ 2010-09-30 00:16 放屁阿狗 閱讀(7687) | 評論 (2)編輯 收藏

            IMC-SDK

            Instant Message Communication 開發(fā)工具包

             

            作為即時(shí)通信軟件的底層通信功能被獨(dú)立分隔出來,同樣也可以以用于其他的通信需求.

            IMCACEICE吸收優(yōu)秀的概念和技術(shù),通信處理不免都是C/S的模式,一頭請求,另外一頭接收處理并返回處理結(jié)果. Ice一樣,所有操作都 被視為遠(yuǎn)程調(diào)用RPC

            不同的應(yīng)用需求,在設(shè)計(jì)開發(fā)時(shí),我們將定義無數(shù)的數(shù)據(jù)類型影射到應(yīng)用模型對象,并被序列化傳輸?shù)竭h(yuǎn)端,這些編碼工作無疑是容易出錯(cuò)的,并且是令人沮喪的。既然是RPC的一種實(shí)現(xiàn),IDL是好的中間語言,所有的應(yīng)用模型都可以定義在IDL,通過slice工具將其翻譯到不同的實(shí)現(xiàn)語言,slice將處理好數(shù)據(jù)對象的Marshalling&UnMarshalling等工作。

            IMCICE的相同:

            采用一致的數(shù)據(jù)類型(int,byte,short,long,float,double,string)

            一致的通信協(xié)議定義,參考ice1.3文檔

            支持同步和異步調(diào)用;支持oneway調(diào)用

            支持參數(shù)的out

             

            IMCICE不同之處:

            IMC 不支持class;接口不能被當(dāng)作參數(shù)傳遞;

             

             

            支持TcpUDT通信方式,tcpudt的連接(connection)上進(jìn)行雙向的Rpc調(diào)用(Ice一般在一個(gè)連接上是單向的)

             

            調(diào)用的返回:

            1.      同步調(diào)用: 

            1.1. 接收到返回結(jié)果

            1.2. 超時(shí)(timeout調(diào)用時(shí))

            1.3. 連接(connection)斷開

            1.4. 系統(tǒng)結(jié)束處于終止清理階段(將刪除所有的connection)

            2.      異步調(diào)用:

            即可返回

             

            函數(shù)序列化(operator):

                     參數(shù)支持INOUT類型,但不支持 INOUT類型,且OUT類型必須在IN之后被定義(ice)。每個(gè)函數(shù)(operator)都將有一個(gè)僅對于interface內(nèi)的索引編號(integer),參數(shù)將被置于參數(shù)棧(ParameterStack).

                     字節(jié)流到函數(shù)參數(shù)時(shí),先從包內(nèi)找出此次調(diào)用接口的類型,根據(jù)函數(shù)編號找到解析此參數(shù)棧的函數(shù),并將剩余的字節(jié)流傳遞到以上函數(shù)去解析

             

            Struct OperatorMap{

                     Int  index;

                     String name;

                     Void decode(ByteArray& bytes);

            };

            Class Security{

            Virtual string close(int reason);

            Friend __security_decode_close;

            }

            Static __security_decode_close(ByteArray& bytes, void* obj);

            OperatorMap __omap_security={0,”close”,__security_decode_close};

             

            //解碼字節(jié)到函數(shù)參數(shù),并最終調(diào)用Rpc函數(shù)

            //以下代碼自動(dòng)生成

            ParameterStack __security_decode_close(ByteArray& bytes, void* obj){

                     Security * sec = (Security*)obj;

                     Parameter p;

                     ParameterStack pstack;

            P = unMarshallingParameter(bytes,”int”);

            Int reason = p;

                     P = Sec->close(reason);

                     Pstack.push(p);

                     Return pstack;

            }

             

             

            posted @ 2010-09-24 02:13 放屁阿狗 閱讀(288) | 評論 (0)編輯 收藏

            一個(gè)朋友經(jīng)常碰到要將大批量的照片輸出到寫真機(jī),就不停的將圖片加載進(jìn)photoshop,然后排版,效率夠慢的,便寫個(gè)腳本把這些工作簡化了
            config.txt配置信息
            1 item_hspace=0.5
            2 item_vspace=0.5
            3 item_width = 20 #15cm
            4 item_height = 15
            5 DPI=96
            6 canvas_heigth=88 #200cm
            7 canvas_rotation=90 
            8 source = D:\共享\2010.9.20\小天鵝幼兒園小4班照片
            9 outfile=final2.tiff

            main.py處理代碼
              1 #-*- coding:utf-8 -*-
              2 #
              3 #name: config.py
              4 #brief:
              5 #    系統(tǒng)配置文件
              6 #author: scott
              7 #
              8 
              9 
             10 import os,sys,time,os.path,traceback
             11 import zlib,binascii
             12 import PIL,Image
             13 import config
             14 
             15 DPI=96.0
             16 
             17 POINTS_PER_METER = DPI/2.54 * 100 #每米多少個(gè)像素
             18 POINT_PER_CMETER = DPI/2.54
             19 
             20 ITEM_HSPACE=0
             21 ITEM_VSPACE=1
             22 ITEM_WIDTH =#照片的寬度
             23 ITEM_HEIGTH = 0 #照片寬度決定了高度
             24 CANVAS_HEIGHT= 0 #畫板高度,長度是無限制的
             25 CANVAS_ROTATION = -90 #最終輸出照片進(jìn)行旋轉(zhuǎn)輸出
             26 
             27 conf = config.SimpleConfig()
             28 conf.open('config.txt')
             29 DPI = conf.getPropertyValueAsFloat('DPI',96.0)
             30 ITEM_HSPACE = conf.getPropertyValueAsFloat('item_hspace',0.5* POINT_PER_CMETER
             31 ITEM_VSPACE = conf.getPropertyValueAsFloat('item_vspace',0.5* POINT_PER_CMETER
             32 ITEM_WIDTH = conf.getPropertyValueAsFloat('item_width',15* POINT_PER_CMETER
             33 ITEM_HEIGHT = conf.getPropertyValueAsFloat('item_height',10* POINT_PER_CMETER
             34 
             35 CANVAS_HEIGHT = conf.getPropertyValueAsFloat('canvas_heigth',200* POINT_PER_CMETER
             36 CANVAS_ROTATION = conf.getPropertyValueAsFloat('canvas_rotation',-90
             37 
             38 ITEM_HSPACE = int(ITEM_HSPACE)
             39 ITEM_VSPACE = int(ITEM_VSPACE)
             40 ITEM_WIDTH = int(ITEM_WIDTH)
             41 ITEM_HEIGHT = int(ITEM_HEIGHT)
             42 CANVAS_HEIGHT = int( CANVAS_HEIGHT)
             43 
             44 print conf.getPropertyValueAsFloat('canvas_rotation',-90)
             45 
             46 rows = CANVAS_HEIGHT / (ITEM_HEIGHT+ITEM_VSPACE)
             47 
             48 source = conf.getPropertyValue('source')
             49 final = conf.getPropertyValue('outfile')
             50 
             51 files = []
             52 
             53 imgsize=[0,0]
             54 
             55 for f in os.listdir(source):
             56     if os.path.isdir( "%s/%s"%(source,f)):
             57         continue
             58     try:
             59         imgfile = Image.open("%s/%s"%(source,f))
             60         size = imgfile.size
             61         if size[0]<size[1]:
             62             imgfile = imgfile.rotate(90)
             63             imgfile.save("%s/%s"%(source,f))
             64     except:
             65         continue
             66     files.append(    "%s/%s"%(source,f))
             67 #計(jì)算輸出文件的大小
             68 cols = len(files)/(rows)
             69 cols = int(cols)
             70 if  len(files)%(rows) != 0:
             71     cols +=1
             72     
             73 CANVAS_WIDTH = cols * (ITEM_VSPACE+ITEM_WIDTH)
             74 imgsize = (CANVAS_WIDTH,CANVAS_HEIGHT)
             75 imgcanvas = Image.new('RGB',imgsize,0xffffff)
             76 
             77 print CANVAS_WIDTH,CANVAS_HEIGHT
             78 print cols,rows
             79 
             80 for c in range(cols):
             81     x = c * (ITEM_WIDTH+ITEM_HSPACE)
             82     for r in range( int(rows)):
             83         y = r * (ITEM_HEIGHT+ITEM_VSPACE)
             84         if len(files):
             85             file = files[0]
             86             files.remove(file)
             87             try:
             88                 print 'open file:',file
             89                 imgfile = Image.open(file)
             90                 print (x,y,x+ITEM_WIDTH,y+ITEM_HEIGHT)
             91                 imgfile = imgfile.resize((ITEM_WIDTH,ITEM_HEIGHT))
             92                 imgcanvas.paste(imgfile,(x,y,x+ITEM_WIDTH,y+ITEM_HEIGHT))
             93                 
             94                 #imgcanvas.paste(imgfile,(x,y))
             95             except:
             96                 print traceback.print_exc()
             97                 #sys.exit()
             98 if CANVAS_ROTATION:
             99     print CANVAS_ROTATION
            100     imgcanvas = imgcanvas.rotate(CANVAS_ROTATION)
            101     pass
            102     
            103 imgcanvas.save(final)
            104 
            105 



            posted @ 2010-09-22 19:50 放屁阿狗 閱讀(1670) | 評論 (0)編輯 收藏


            /etc/resolv.conf
            whois

            /etc/exports
                /home/nfs 192.168.14.22(ro)

            mount 192.168.14.2:/home/nfs /mnt/a




            ls -F -S
            wall
            write
            hostname,who ,id,
            touch -c
            rm -fr
            df -h
            du -hs
            quota

            cpio
            制造文件或是目錄的拷貝檔案。

            例1:find . | cpio-ocv > /dev/rmt/0m創(chuàng)建一個(gè)當(dāng)前目錄下的所有文件的存檔文件。

            例2:cpio –icdmv < /dev/rmt/0m從一個(gè)檔案文件中恢復(fù)所有的文件

            -o  制造一個(gè)備份。讀取標(biāo)準(zhǔn)輸入并且拷貝每一個(gè)文件到標(biāo)準(zhǔn)輸出

            -i  恢復(fù)一個(gè)備份。讀取備份文件并且在磁盤上重新創(chuàng)建文件。             

            -c  寫文件頭為ASCII碼格式(如果同-o一起使用,在-i同樣要使用這個(gè)選項(xiàng))

            -d  在需要時(shí),重新建立目錄結(jié)構(gòu)

            -m  保留當(dāng)前修改的數(shù)據(jù)。(在版本控制時(shí),十分有用)

            -t  顯示備份檔案的內(nèi)容列表

            -u  無條件恢復(fù)(如果文件已經(jīng)存在,這個(gè)選項(xiàng)會(huì)覆蓋這個(gè)文件

            -v  顯示被拷貝的文件的一個(gè)列表

            -x  處理特殊的設(shè)備文件
            posted @ 2010-08-24 13:07 放屁阿狗 閱讀(202) | 評論 (0)編輯 收藏

            ice的slice由 scanner.l,grammar.y構(gòu)成語法,并映射到不同的程序語言
            posted @ 2010-07-16 12:47 放屁阿狗 閱讀(469) | 評論 (0)編輯 收藏


            我來這里加入5173的一個(gè)游戲研發(fā)部門,開發(fā)一項(xiàng)隱秘項(xiàng)目的開發(fā)。
            項(xiàng)目又急工作量也大,難度也是不小,又是隱秘。
            5173是做網(wǎng)絡(luò)游戲虛擬貨物交易,網(wǎng)游這么熱,用戶群體非常龐大,從而產(chǎn)生的交易行為具5173的統(tǒng)計(jì)能做到日2000w的單次,從中5173收取交易的傭金。很簡單,5173就是一個(gè)中介,一個(gè)信用的中介,從02年起家,05年風(fēng)頭接入,現(xiàn)在號稱做到全國最大的交易平臺,據(jù)說現(xiàn)在在評測一款網(wǎng)游,準(zhǔn)備也開始做游戲運(yùn)營。
            5173號稱3000人的規(guī)模,交易員約2500人之眾,要求每個(gè)員工上班都著西裝,所以休息時(shí)間能看到比較壯觀的現(xiàn)象,就是有密集的20歲上下的統(tǒng)一著裝的小孩簇?fù)碇黄疬^馬路去食堂吃飯。 在金華的5173生活號稱是生活消費(fèi)為0,就是吃住公司全包。
            扯遠(yuǎn)些了,繼續(xù)談5173的工作內(nèi)容。由于交易量在增加,所以管理和支撐這么員工的開銷必然很大,所以必須有一種解決方案來解決這個(gè)問題,那就是游戲自動(dòng)交易機(jī)器人系統(tǒng),也就是原本人工接入的交易買賣行為交由計(jì)算自動(dòng)來解決。
            順便說一下,人工交易,就是買賣雙方將自己的游戲賬戶、密碼、金錢交與5173的交易員,由5173交易員來人工打開游戲,登錄不同用戶的賬戶來完成虛擬物品的交換或者買賣。對于交易員的職業(yè)道德素質(zhì)也有一定的要求,這就不用過多解釋了。。。
            那機(jī)器人交易如何工作呢 ? 運(yùn)行時(shí),講有幾百臺的游戲主機(jī)上線,安裝好機(jī)器人和游戲之后由控制服務(wù)器自動(dòng)下發(fā)從5173業(yè)務(wù)服務(wù)器發(fā)過來的訂單到每臺主機(jī)的游戲機(jī)器人,由機(jī)器人啟動(dòng)游戲進(jìn)行交易。
            機(jī)器人的實(shí)現(xiàn)有3種,一種叫外掛,可以通過模擬鍵盤鼠標(biāo)來模擬游戲行為;第二種叫內(nèi)掛,也是比較高深的技術(shù),通過游戲進(jìn)程注入二進(jìn)制代碼來結(jié)合系統(tǒng)鉤子或者驅(qū)動(dòng)來截獲游戲運(yùn)行的入口,加上分析游戲通信協(xié)議進(jìn)行修改、分析、模擬游戲的行為;第三種叫做脫機(jī),就是不用運(yùn)行游戲客戶端,直接破解了游戲的通信協(xié)議之后,采用socket開發(fā)模擬游戲的通信客戶端來操作游戲行為。這三種技術(shù)在這里都有實(shí)現(xiàn),4,5款游戲有10人負(fù)責(zé)開發(fā),這個(gè)工作叫做逆向。
            游戲的現(xiàn)在放外掛、盜號應(yīng)經(jīng)做得很完善了,而且通過頻繁的更新游戲版本來防止外掛,所以做逆向的人非常的忙。這些人很專,工作也很專注,有幾個(gè)專用匯編來做開發(fā)的,跟我聊天說道只會(huì)匯編,所以找不到工作,只好做這個(gè),聽了我笑了出來。
            我的工作就是做游戲機(jī)器人的系統(tǒng)框架,將逆向的工作成果整合成一個(gè)系統(tǒng),完成交易行為,也就是說他們做發(fā)動(dòng)機(jī),而我是做汽車的組裝。
            換成是n年前,我定是非常高興的來到這里,因?yàn)槟軐W(xué)點(diǎn)東,學(xué)點(diǎn)逆向的東西,可現(xiàn)在沒有這種想法了,也不想去深入,畢竟這個(gè)東西非常耗精力,自己已經(jīng)耽誤不起。
            為何說隱秘工作,道理在于并不想被游戲運(yùn)營產(chǎn)商知道這里的存在,畢竟修改游戲是件不齒的事情,且如果游戲廠商來分析逆向的代碼的話,這里的工作成果馬上被游戲檢測出來而使機(jī)器人 無效。
            這個(gè)項(xiàng)目做了3個(gè)月了,這些人以前也是同一個(gè)團(tuán)隊(duì),都是比較團(tuán)結(jié),來5173完成這個(gè)項(xiàng)目或者說系統(tǒng),現(xiàn)在也是跟5173一體了。

            01.07 三戰(zhàn)金華
            想來也有1個(gè)月時(shí)間在5173混了
            兩個(gè)抽煙倒霉鬼據(jù)說是被抓了正式開除了
            剛吃完晚飯,再為這公司奉獻(xiàn)的心血和視力、腦力、體力和鍵盤的磨損力
            這里也是的冷,故說暫時(shí)取消了正式著裝的制度,隨便都可以了除了光小屁股


            01.22 金華第二日
            5點(diǎn)到了金華,這里的天氣還是挺冷的
            開了間108塊的小旅店客房便去了公司
            寒暄一番,里面挺熱
            晚上開了小時(shí)的會(huì)議,深刻感到要做游戲自動(dòng)交易的難度和工作量
            5173存在到現(xiàn)在且能做到游戲交易老大位置而不動(dòng)搖就是用錢堆集出來的
            5173這么容易的賺錢模式自己非常的眼紅,可是無法效仿,沒有大量錢投入簡直無法做任何事情。
            大的交易單量和人力成本的支出非常的矛盾
            客服、運(yùn)維、單包、郵寄這些交易的基本流程一個(gè)都不能少,開會(huì)又讓我對5173業(yè)務(wù)上有新的認(rèn)識,
            異地單子的投訴單單電話費(fèi)將是非常的大
            晚上到了1,2點(diǎn)才搞到了數(shù)據(jù)的交易信息表,非常的累,同事都不知道那臺1.137的主機(jī)在哪里,跑上去迅速備份了交易表,同時(shí)將監(jiān)控器的日志也備份下來等待之后的分析
            發(fā)現(xiàn)數(shù)據(jù)庫被昨日清空了,說是為了備份,奶奶的,只得到了一點(diǎn)點(diǎn)數(shù)據(jù)。

            繼續(xù)想。。。




            金華12.15
            天繼續(xù)陰沉,心情又是頗差
            這么一堆的人,顯得自己略老了些,做這一行確實(shí)有點(diǎn)絕望的感覺。還要自己努力表現(xiàn)跟這些小孩子去爭什么呢
            來這里 本事很輕松的心態(tài),就是走走,看看,聽聽,想想,可是到現(xiàn)在為何這么的難受,仔細(xì)想想,大概是自己已經(jīng)脫離坐班制度已經(jīng)很久了,一直以來是輕輕松松的度過 每一天,一切都是自由自在;其次,自己不由自主的又陷入到努力工作去解決問題的惡性循環(huán)里去了,似乎不管是誰活,自己都是會(huì)忘我的投入進(jìn)去,看到自己是這 個(gè)樣子,其實(shí)很想將自己把出來,似乎像是毒品一樣上癮;再次就是這個(gè)垃圾公司,已經(jīng)第三次跟門衛(wèi)吵架了,要求穿西裝,沒有辦法,晚上去超市買了條深色褲子 來應(yīng)付。
            有點(diǎn)想家的感覺了,想念那個(gè)氛圍。仔細(xì)想來,原本自己不是這樣的人,要么是人老了,心態(tài)老了,之前呆過幾家公司對于封閉開發(fā),出差我都是非常積極的,可現(xiàn)在卻是十分的反感,沒有感覺到有一種歸屬感,氛圍的歸屬,也找不到了那種同事和朋友的那種感覺,只是在這里打工。
            這些天很少想到自己的事情,該好好抽空想想來這里的目的了
            感冒好了些,但鼻涕還有許多

            金華 12.14
            14一個(gè)要死的日志
            這里的天氣陰沉,有密語;感冒在持續(xù),講話都是嗡嗡的聲音
            這里的開發(fā)還是如火如荼的進(jìn)行中,雖然有點(diǎn)亂頭無序,但我還是比較投入的參與進(jìn)去
            前兩天完成了第一個(gè)任務(wù):解決100臺游戲主機(jī)自動(dòng)更新和啟停游戲的功能,今天繼續(xù)完善修正部分bug,搞了半天發(fā)現(xiàn)了python創(chuàng)建目錄函數(shù)mkpath()的問題,此函數(shù)無法連續(xù)使用,最后沒法采用os.mkdir()循環(huán)創(chuàng)建了多層目錄
            雖然嗓子還是有點(diǎn)不舒服,大概是出于刻意的放松的目的,去陽臺抽了幾口煙,呼吸了一下空氣。
            左右踱擺,到底是何種心態(tài)來這個(gè)公司,參與這個(gè)項(xiàng)目,現(xiàn)在自己也有點(diǎn)搞不明白了,本著想切入一下游戲交易行業(yè),了解一下行業(yè)的業(yè)務(wù)內(nèi)容,現(xiàn)在也是了解大半了;

            金華.12.12
            來金華已經(jīng)第5日,基本生活在這個(gè)地方可以實(shí)現(xiàn)生活0成本,吃住都可以由公司解決
            10點(diǎn)上班一般都是晚上12點(diǎn)才回去,許多人更晚。在這里的幾天胃口變大了,9點(diǎn)的賓館自助早餐,中飯、晚飯還有夜宵飯,這些都一頓沒少且不要錢
            心態(tài)還是要放好一點(diǎn),多思考一下自己接下來的目標(biāo)和內(nèi)容

            5173.10日
            7日下午到達(dá)5173總部,這里好稱有2.5k人,剛來到公司大樓門口便見一群西裝革履的年輕人從左至右魚貫而來,原來到了吃飯時(shí)間
            人的確很多,還是指紋打卡,這里都是3班倒的坐班制度,這些nk的人都是游戲交易員,也就是本地的廉價(jià)勞動(dòng)力。
            我們辦公地點(diǎn)是在5樓,人也有20來個(gè),很多都是做逆向的,所謂逆向就是分析游戲的處理邏輯,然后就是模擬這些人與游戲交互的行為,也成為cracker。
            在這里沒吃過早飯,晚飯5點(diǎn)半就吃了,晚上10點(diǎn)半也有夜宵,吃得人也要排隊(duì),不過都不要錢
            這些人都是睡覺的人,10上班到晚上11點(diǎn)都還不愿意走,這也是要不得的

            到2010年6月,我考慮離職了,公司的環(huán)境非常的不舒服,當(dāng)初人事介紹的諸多公司福利等現(xiàn)在全然無存,有點(diǎn)上當(dāng)?shù)母杏X
            工資12k扣完拿9.5k,沒有多考慮就提交了erp的離職申請,正好回家看世界杯,部門頭也同意了
            本想混完6月再跑路的,據(jù)說有季度獎(jiǎng),我換算了一下有2k,不過由于不爽就不想壓抑自己了,不要了
            5173是沒有年終獎(jiǎng)的,但全年發(fā)13個(gè)月工資,多出來的一個(gè)作為季度獎(jiǎng)金來發(fā)放,2-2-2-4,最后一個(gè)季度發(fā)放40%


            posted @ 2010-06-19 16:27 放屁阿狗 閱讀(567) | 評論 (1)編輯 收藏

                 摘要: 5173.com提出抓取同行交易系統(tǒng)的業(yè)務(wù)信息來做數(shù)據(jù)分析而提出這么個(gè)需求給我,花了1天用python完成 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  1 # -*- coding:utf-8...  閱讀全文
            posted @ 2010-06-10 23:23 放屁阿狗 閱讀(6282) | 評論 (1)編輯 收藏

            http://118.126.7.153/maps/test_map.html
            12級別采用tilecache產(chǎn)生圖塊到postgres存儲(chǔ),繪制過程花費(fèi)了12天,真希望有海量空間和更多的機(jī)器供我使用阿


            posted @ 2010-05-16 17:08 放屁阿狗 閱讀(431) | 評論 (0)編輯 收藏

            Boost
            Qt
            wxWidgets
            Ace
            Ice

            posted @ 2010-05-13 03:12 放屁阿狗 閱讀(223) | 評論 (2)編輯 收藏

            Ice的設(shè)計(jì)思想非常好,通過slice定義之后產(chǎn)生一堆的通信框架代碼來自動(dòng)化完成對象數(shù)據(jù)的序列化
            由于ice是基于Rpc的,底層通信細(xì)節(jié)被屏蔽掉了,甚至是連接的自動(dòng)重復(fù)建立,可喜又可悲,有些應(yīng)用必須要關(guān)心這些底部的通信細(xì)節(jié),
            如果直接用socket又嫌太麻煩了,不同的應(yīng)用都是在重復(fù)的進(jìn)行開發(fā)通信協(xié)議,解包和打包花銷很很多的精力,這些工作都是重復(fù)的,沒有技術(shù)含量而且容易出錯(cuò).
            之前開發(fā)過mtslib通信庫來解決socket通信問題,使兩端都是以消息包的形式進(jìn)行通信,解決了socket兩段buffer的管理
            也看過ice的代碼實(shí)現(xiàn),slice2cpp用yacc&lex進(jìn)行詞法語法的處理
            對象的自動(dòng)序列化這是我所感興趣的,同ice一樣提供一個(gè)通信環(huán)境,然后用戶可以自定義自己的通信數(shù)據(jù),通過idl的形式自動(dòng)產(chǎn)生序列化代碼并編譯進(jìn)用戶工程.
            這種方式與ice又不同在于沒有那么傻瓜化,但簡化了用戶處理消息報(bào)的過程.
            這樣要完成一個(gè)類似ice的rpc調(diào)用也是沒有那么簡單
            yacc/lex,lemon,

            posted @ 2010-05-10 15:27 放屁阿狗 閱讀(515) | 評論 (1)編輯 收藏

            僅列出標(biāo)題
            共25頁: First 8 9 10 11 12 13 14 15 16 Last 
            97精品依人久久久大香线蕉97| 精品久久久久久久久中文字幕| 久久久久se色偷偷亚洲精品av | 亚洲欧美日韩久久精品| 色播久久人人爽人人爽人人片aV | 精品国产日韩久久亚洲| 无码人妻久久一区二区三区蜜桃 | 欧美精品乱码99久久蜜桃| 色婷婷综合久久久久中文一区二区 | 亚洲国产精品成人久久| 99久久er这里只有精品18| 国产精品日韩深夜福利久久| 热久久最新网站获取| 久久成人精品视频| 亚洲午夜久久久| 国产精品美女久久久久网| 无码任你躁久久久久久| 国内精品久久久久影院免费| 青青草原综合久久大伊人导航| 久久夜色精品国产噜噜噜亚洲AV| 久久亚洲精品视频| 中文字幕无码精品亚洲资源网久久| 亚洲精品高清国产一久久| 四虎国产精品成人免费久久| 久久国产精品久久精品国产| 国产精品99久久久久久宅男小说| 久久99精品久久久久久| 久久人人爽人人爽人人片AV东京热 | 精品综合久久久久久97超人| 久久笫一福利免费导航| 99久久国产亚洲高清观看2024| 亚洲午夜久久久久久久久电影网 | 国产成人久久久精品二区三区| 婷婷五月深深久久精品| 日韩久久久久中文字幕人妻 | 亚洲国产日韩欧美久久| 99久久精品免费| 97r久久精品国产99国产精| 亚洲第一极品精品无码久久| 伊人伊成久久人综合网777| 精品久久综合1区2区3区激情|