libjingle開發系列之一 :libjingle0.51的編譯

開發是在windows平台下進行的,利用libjingle完成一個準系統的用戶端。 暫時連結Gtalk的伺服器,以後會在本地搭建伺服器。 libjingle官方: https://code.google.com/p/libjingle/1. 編譯lib 首先用libjingle內建的編譯環境產生lib和samples。 安裝包裡德readme寫的很清楚了,按照上面的步驟一步一步來就是了。

HTTP如何判定檔案大小

如何才能確定http實體的檔案長度呢?大致有下面四種情況:     * 任何不含有訊息體的訊息(如1XXX、204、304等響應訊息和任何頭(HEAD,首部)請求的響應訊息),總是由一個空行(CLRF)結束。    * 如果訊息使用媒體類型“multipart/byteranges”,並且transfer-length 沒有另外指定,那麼這種自定界(self-delimiting)媒體類型定義transfer-length 。除非寄件者知道接收者能夠解析該類型,否則不能使用該類型。    *

TLS機制淺析

看libjingle庫的過程中發現,它用了TLS機制來實現線程對象和線程的關聯。這裡簡單記述下TLS的一些細節。 TLS(thread local sttorage), 首先看圖,這是從核心編程裡摳出來的。

libjingle開發系列之二:線程管理

先從ThreadManager類說起: 這是一個全域的線程管理類,在thread.cc中定義。 這個類的核心功能在於提供線程對象註冊的功能。提供了一個很方便的函數CurrentThread,如下面的情境:     // Check that we're being called from the channel (e.g., worker) thread.     ASSERT(talk_base::ThreadManager::CurrentThread() ==

Mac使用學習筆記: 開源工具包管理器

作為vim使用者,xcode真是讓我抓耳撓腮,難受的要死,~~咬牙切齒還是把MacVim給裝上,可是光有個vim不頂用啊。我一直使用exvim這個套裝(神器,沒用過的趕緊上),要一堆unix上的開源玩意,一個一個弄,我還不給它搞死。liunx上apt-get那玩意沒道理mac上沒有替代品,一陣google,果然有,還不知一個。作為軟體試用深度上癮症患者,趕緊的一個一個試。 Brew(homebrew首頁):好,就一個字評價,如果要安裝wget,只要這樣: brew install

Mac使用學習筆記: MacVim & exvim 配置使用手記

作為堅定的vim使用者,其他編輯器都是浮雲,折騰了一天終於搞定了mac上vim環境。下面記錄下安裝配置過程,備忘之。 1. 安裝MacVim,應該是mac上使用vim最好的選擇了:http://code.google.com/p/macvim/沒啥好說,下了裝上就是了。 2. 配置基本環境MacVim做的還是不錯的,還支援背景半透明(不知道啥用哦~~)。MacVim預設是不會組建組態檔案的,所以你需要自己在~目錄下,建立.gvimrc

Three20 style 設定的一些例子

需要的前置知識:http://mattvague.com/three20-stylesheets-tutorialhttp://mattvague.com/three20-tttableitem-tutorial 如何改變導覽列 顏色:可以直接改:self.navigationBarTintColor = [UIColor blackColor];麻煩之處在於,每個頁面都得改一遍。 也可以使用全域的style sheet:-(UIColor *) navigationBarTintColor {

再來一個面試題

哎~ 情況繼續惡化,電視台都來了~~~,原本一個運作正常的公司,突然就不行了。。。真是神馬都是浮雲。繼續來個面試題,倒是也不怎麼無聊,就是不知道有啥用,不過做做題,心裡還平靜點。 話說題目是,用隨機演算法求PI,就是圓周那個PI。隨機演算法神馬的從來都是用過,沒寫過,這裡隨便貼個線性同餘法    其中b >= 0,c >= 0,d <=

keep-alive 和 TCP存活檢測

什麼是keep-alive?   顧名思義即可,注意它只適用於TCP串連。系統會替你維護一個timer,時間到了,就會向remote peer發送一個probe package,當然裡面是沒有資料的,對方就會返回一個應答,這時你就知道這個通道保持正常。 有什麼用呢?   考慮下面這個情境,端點A和端B開始串連,三向交握,建立好了一個穩定的雙向通道。然後雙方發送完初始的資料後,進入等待狀態。這時候,拔掉B的電源插頭,B死掉了,它不可能有任何機會向A發送FIN包,或是其他資料來說明自己掛掉,

TCP 滑動視窗協議

什麼是滑動視窗協議?     一圖勝千言,看下面的圖。簡單解釋下,發送和接受方都會維護一個資料幀的序列,這個序列被稱作視窗。發送方的視窗大小由接受方確定,目的在於控制發送速度,以免接受方的緩衝不夠大,而導致溢出,同時控制流程量也可以避免網路擁塞。下面圖中的4,5,6號資料幀已經被發送出去,但是未收到關聯的ACK,7,8,9幀則是等待發送。可以看出發送端的視窗大小為6,這是由接受端告知的(事實上必須考慮擁塞視窗cwnd,這裡暫且考慮cwnd>rwnd)。此時如果發送端收到4號ACK,

PC機啟動過程備忘

一篇備忘錄,也是周末的讀書筆記。 pow on階段:   從電源按下去到“滴的”一聲長響,通常維修人員管這個叫點亮,確實顯示器也會在這個時候被“點亮”,開始有輸入訊號。這個過程實際上是BIOS啟動,初期化,和檢測基本硬體資訊的過程。電源通電後,首先啟動的是CPU,CPU開始運行寫在flash

TCP網路擁塞控制

TCP本身的可靠性是利用確認機制,逾時重發來保證的,這些不說了,網上資料很多。不過以前一直沒有仔細學習過TCP的網路擁塞控制,現在記錄下一些總結吧。什麼是擁塞?    

用pystring處理字串

    c++中字串處理總是個煩人的地方,雖說std::string也還不錯,但是比起pythong,lua這些總是麻煩很多。 今天發現pystring這個函數封裝庫,確實是很不錯。它通過封裝std::string實現了類似python處理string的介面。 連結在這裡:https://code.google.com/p/pystring/  用法很簡單,這裡翻譯了下它的文檔:capitalizestd::string capitalize(const std::string &

一些面試基礎知識點(1)

一些老掉牙的知識點,就怕陰溝裡翻船,全部翻出來看看。記憶體對齊,sizeof,strlen類問題:    這類問題都是考基本的記憶體方面的問題,基本類型的資料麼,主要是字串和指標的問題,字串主要尾部的\0,指標注意32位機器上都是4位元組的。複合類型就有對齊的問題,簡單來說是由成員的對大對齊單位來指定的。具體看例子: char ss[] = "1234"; std::cout<<sizeof(ss); //輸出5

一個無聊的面試題

公司糟了災,年底了還要去找工作,真是流年不利啊。面試題啥的,向來是很反感的,有啥意義呢?哎~~,世道如此,只好把面經啥的又捧起來看了,煩啊。  題目很簡單了,就是列印下面這種樣式的字元,主要的邏輯很簡單,可是面經上的解答實在不給力啊,直接就main裡一個for就列印出來,這不是騙小孩麼,也不知道那時候買這個幹嘛,不過那會剛畢業,也差不多是個小屁孩了。往簡單了想,變化點有三個,一個是列印的行數,一個是列印到什麼位置,一個是列印的花紋,OO啥的不折騰了,就用C風格寫下算了。

資料庫索引簡介

因為也不是專門的資料庫開發,或是DBA,就是針對網上的一些資料的學習總結,謬誤之處難免,請網友不吝指教。什麼是索引?   簡單的用字典的檢索目錄做比喻多少有一點事實而非,索引的結構實際上也影響了資料實體本身的儲存結構,所以更細緻一點說,沒有索引,有索引,有叢集索引,有非叢集索引是資料庫表的不同的儲存,使用的方式。  關於B-Tree   要理解索引,就不能不瞭解他的實現。常見的實現多是用B-Tree或是B+Tree,這裡簡單說下我對B-Tree的理解。

winsock recv函數的應用

其實就是翻譯下msdn,沒別的用,督促一下自己看的仔細些。 recv 從一個已經串連的或是已經綁定的socket中擷取資料。 int recv( SOCKET s, char FAR *buf, int len, int flags); 參數 s     [in] socket id buf     [out] 緩衝 len     [in]  緩衝大小 flags     [in]  標識,用處參見下面的說明

mac常用快速鍵和設定

mac:command + option + esc  -> 工作管理員command +f3 -> 顯示案頭command + shift + 3 -> 案頭command + shift + 4 -> 截取矩形delete -> backupshift + delete -> forwardcommand + m -> 隱藏視窗command + h -> 縮小視窗command + option + 電源鍵(推出鍵) ->

一些面試基礎知識點(2)

strcp strlcp memcp的實現,又寫了一遍,也不知道是第幾遍了。目標串的容量,字串重疊,寬字元,四位元組最佳化這些東西不考慮了。 char* strcp(char* dest, const char* src) { assert(dest != NULL); assert(src != NULL); if (dest == NULL || src == NULL) return NULL; char* save = dest; while((*dest+

Selenium IDE & Selenium RC 使用小記

以操作百度地圖的一個case為例子,  查詢兩個地址之間的大眾運輸路線,並且使用python驅動Selenium RC。 前置知識:http://seleniumhq.org/docs/05_selenium_rc.html#learning-the-api  -》Selenium RC結構,安裝各種語言的sdkhttp://seleniumhq.org/docs/  -> Selenium IDE 用法  step1:使用Selenium IDE生產python代碼 Base URL:

總頁數: 61357 1 .... 8936 8937 8938 8939 8940 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.