青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 7  文章 - 6  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(1)

隨筆檔案

文章分類

搜索

  •  

積分與排名

  • 積分 - 33189
  • 排名 - 617

最新評論

閱讀排行榜

評論排行榜

To understand the backlog argument, we must realize that for a given listening socket, the kernel maintains two queues :
要明白backlog參數的含義,我們必須明白對于一個listening socket,kernel維護者兩個隊列:

1.An incomplete connection queue, which contains an entry for each SYN that has arrived from a client for which the server is awaiting completion of the TCP three-way handshake. These sockets are in the SYN_RCVD state .
1.一個未完成連接的隊列,此隊列維護著那些已收到了客戶端SYN分節信息,等待完成三路握手的連接,socket的狀態是SYN_RCVD

2.A completed connection queue, which contains an entry for each client with whom the TCP three-way handshake has completed. These sockets are in the ESTABLISHED state
2.一個已完成的連接的隊列,此隊列包含了那些已經完成三路握手的連接,socket的狀態是ESTABLISHED

The backlog argument to the listen function has historically specified the maximum value for the sum of both queues.
backlog參數歷史上被定義為上面兩個隊列的大小之和

Berkeley-derived implementations add a fudge factor to the backlog: It is multiplied by 1.5
Berkely實現中的backlog值為上面兩隊列之和再乘以1.5

When a SYN arrives from a client, TCP creates a new entry on the incomplete queue and then responds with the second segment of the three-way handshake: the server's SYN with an ACK of the client's SYN (Section 2.6). This entry will remain on the incomplete queue until the third segment of the three-way handshake arrives (the client's ACK of the server's SYN), or until the entry times out. (Berkeley-derived implementations have a timeout of 75 seconds for these incomplete entries.)
當客戶端的第一個SYN到達的時候,TCP會在未完成隊列中增加一個新的記錄然后回復給客戶端三路握手中的第二個分節(服務端的SYN和針對客戶端的ACK),這條記錄會在未完成隊列中一直存在,直到三路握手中的最后一個分節到達,或者直到超時(Berkeley時間將這個超時定義為75秒)

If the queues are full when a client SYN arrives, TCP ignores the arriving SYN (pp. 930–931 of TCPv2); it does not send an RST. This is because the condition is considered temporary, and the client TCP will retransmit its SYN, hopefully finding room on the queue in the near future. If the server TCP immediately responded with an RST, the client's connect would return an error, forcing the application to handle this condition instead of letting TCP's normal retransmission take over. Also, the client could not differentiate between an RST in response to a SYN meaning "there is no server at this port" versus "there is a server at this port but its queues are full."
如果當客戶端SYN到達的時候隊列已滿,TCP將會忽略后續到達的SYN,但是不會給客戶端發送RST信息,因為此時允許客戶端重傳SYN分節,如果返回錯誤信息,那么客戶端將無法分清到底是服務端對應端口上沒有相應應用程序還是服務端對應端口上隊列已滿這兩種情況

posted @ 2010-02-07 19:43 許海斌 閱讀(18842) | 評論 (2)編輯 收藏

        今天看到有人在問這個問題,寫了下代碼,標準庫分離了算法和數據結構,按照這個框架寫程序確實比較方便,個人認為熟讀和透徹理解標準庫源碼是每個想成為資深c++程序員的必修課,就框架結構而論,stl很好的分離了算法和數據結構,就算法而論,標準庫里有很多常見算法的經典實現,所以有非常高的研究價值。

#include <iostream>
#include 
<stddef.h>
#include 
<stdlib.h>
#include 
<string>
#include 
<iterator>
#include 
<algorithm>
#include 
<vector>

using namespace std;

template 
<typename InputIterator1, typename InputIterator2, typename OutputIterator>
OutputIterator delete_intersection(InputIterator1 first1, InputIterator1 last1, 
         InputIterator2 first2, InputIterator2 last2, OutputIterator dest) 
{
    
while (first1 != last1 && first2 != last2) {
        
if (*first1 > *first2) {
            
*dest = *first2;
            
++first2;
            
++dest;
        }
 else if (*first1 < *first2) {
            
*dest = *first1;
            
++first1;
            
++dest;
        }
 else {
            
++first1;
            
++first2;
        }

    }


    
for (;first2 != last2; ++first2) *dest = *first2;

    
return dest;
}


int main() {
    
int a[] = {1,1,2,2,5,6,9,9};
    
int b[] = {1,2,3,4,4,6,7,8,9,9,9,10};

    vector
<int> vc;

    delete_intersection(a, a 
+ sizeof(a)/sizeof(a[0]), b, b + sizeof(b)/sizeof(b[0]), back_inserter(vc));

    std::copy(a, a 
+ sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, ",")); 
        cout 
<< endl;

    std::copy(b, b 
+ sizeof(b)/sizeof(b[0]), ostream_iterator<int>(cout, ",")); 
        cout 
<< endl;

    std::copy(vc.begin(), vc.end(), ostream_iterator
<int>(cout, ",")); 
        cout 
<< endl;

    ::system(
"PAUSE");
    
return EXIT_SUCCESS;

}
posted @ 2009-03-05 18:56 許海斌 閱讀(1109) | 評論 (4)編輯 收藏
boost的線程庫不能強行終止,所以通過time_wait可以讓其自然的結束

 1
 #include <iostream>
 2 #include <boost/thread/thread.hpp>
 3 #include <boost/thread/mutex.hpp>
 4 #include <boost/thread/condition.hpp>
 5 #include <boost/date_time/posix_time/posix_time.hpp>
 6 
 7 using namespace std;
 8 using namespace boost;
 9 
10 boost::mutex test_mutex;
11 boost::condition_variable test_condition;
12 
13 void test() {
14 
15     for (;;) {
16         
17         boost::mutex::scoped_lock lock(test_mutex);
18         if (test_condition.timed_wait(lock, get_system_time() + posix_time::seconds(3))) {
19             cout << "成功接收到通知" << endl; //這里加個break就結束了
20         } else {
21             cout << "沒有等待到通知" << endl;
22         }
23 
24     }
25 }
26 
27 int main() {
28 
29     boost::thread test_thread(test);
30 
31     for (;;) {
32         ::system("PAUSE");
33         cout << "開始發送通知" << endl;
34         test_condition.notify_one();
35     }
36 
37 }

posted @ 2009-02-19 17:18 許海斌 閱讀(5139) | 評論 (0)編輯 收藏
在泛型編程中,對于一個concept的一系列modeling,尤其是這些modeling中還有c++基本類型的時候,如果要抽取其特性,可以用一個traits類來解決,traits的名稱可命名為concept名稱_traits,對于其中的基本類型的traits可以用類模板的偏特化實現。
posted @ 2009-02-09 17:59 許海斌 閱讀(1554) | 評論 (0)編輯 收藏

實現代碼:

    typedef enum { UNIQUE_LOCK, SHARED_LOCK } LockType;

template<LockType lt>
class shared_lock;

template 
<>
class shared_lock<UNIQUE_LOCK>private boost::noncopyable {
public:
    shared_lock(boost::shared_mutex
& sm): sm_(sm) sm_.lock(); }
    
~shared_lock() { sm_.unlock(); }
private:
    boost::shared_mutex
& sm_;
}
;

template 
<>
class shared_lock<SHARED_LOCK>private boost::noncopyable {
public:
    shared_lock(boost::shared_mutex
& sm): sm_(sm) sm_.lock_shared(); }
    
~shared_lock() { sm_.unlock_shared(); }
private:
    boost::shared_mutex
& sm_;
}
;



調用方式:

    boost::shared_mutex session_mutex_;

//獨占鎖定
shared_lock<UNIQUE_LOCK> lock(session_mutex_);

//共享鎖定
shared_lock<SHARED_LOCK> lock(session_mutex_);


http://www.shnenglu.com/thisisbin/archive/2009/01/21/72417.html 一文 single-write/multi-read 就可以應用這種RAII風格的共享鎖實

posted @ 2009-01-22 10:22 許海斌 閱讀(1400) | 評論 (0)編輯 收藏
    程序中幾個線程一起往控制臺寫入log_info,但是可以很清楚的看到begin or write_process不會同時連續的出現,而且在begin of write_process和end of write_process之間肯定不會出現begin of read_process或者end of read_process。但是begin of read_process卻會在控制臺上連續出現,這說明在同一時刻只有一個write_prcess在運行,但是wrte_process沒有運行的時候,會有多個read_process并發運行。

 1 #include <iostream>
 2 
 3 #include <boost/thread/thread.hpp>
 4 #include <boost/thread/shared_mutex.hpp>
 5 
 6 using namespace std;
 7 using namespace boost;
 8 
 9 boost::shared_mutex shr_mutex;
10 
11 /// 這個是輔助類,能夠保證log_info被完整的輸出
12 class safe_log {
13 public:
14     static void log(const std::string& log_info) {
15         boost::mutex::scoped_lock lock(log_mutex);
16         cout << log_info << endl;
17     }
18 
19 private:
20     static boost::mutex log_mutex;
21 };
22 
23 boost::mutex safe_log::log_mutex;
24 
25 void write_process() {
26     shr_mutex.lock();
27     safe_log::log("begin of write_process");
28     safe_log::log("end of write_process");
29     shr_mutex.unlock();
30 }
31 
32 void read_process() {
33     shr_mutex.lock_shared();
34     safe_log::log("begin of read_process");
35     safe_log::log("end of read_process");
36     shr_mutex.unlock_shared();
37 }
38 
39 int main() {
40 
41     thread_group threads;
42     for (int i = 0; i < 10++ i) {
43         threads.create_thread(&write_process);
44         threads.create_thread(&read_process);
45     }
46 
47     threads.join_all();
48 
49     ::system("PAUSE");
50 
51     return 0;
52 }

posted @ 2009-01-21 13:58 許海斌 閱讀(2688) | 評論 (0)編輯 收藏

1、安裝stlport,參考文章:http://www.cnblogs.com/DonLiang/archive/2007/10/13/923143.html
如果是DEBUG模式請在項目的屬性=>配置屬性=>c/c++=>命令行的附加選項增加/D_STLP_DEBUG

2、boost_1_37_0\tools\jam\stage下運行build.bat編譯生成bjam.exe并拷貝到boost根目錄

3、修改配置文件boost_1_37_0\tools\build\v2\user-config.jam,將兩個stlport選項打開

4、vs2005命令提示下編譯命令:bjam stdlib=stlport --build-type=complete install,接下來是漫長的等待,大概兩個小時以上吧

posted @ 2008-12-09 13:22 許海斌 閱讀(1999) | 評論 (0)編輯 收藏
僅列出標題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            激情亚洲成人| 午夜精品视频在线观看| 免费成人在线视频网站| 日韩一级免费观看| 久久久另类综合| 国产精品亚洲产品| 亚洲少妇中出一区| 亚洲国产mv| 亚洲最新视频在线| 欧美极品在线视频| 亚洲欧洲日夜超级视频| 欧美成人嫩草网站| 久久久久久日产精品| 国产主播一区| 美女脱光内衣内裤视频久久影院| 亚洲自拍啪啪| 亚洲精品在线免费观看视频| 久久久久女教师免费一区| 国产日韩亚洲欧美| 久久精品人人做人人综合 | 亚洲午夜激情| 在线亚洲美日韩| 欧美日韩国产三级| 亚洲影视九九影院在线观看| 一区二区三区四区五区精品| 国产精品日韩精品欧美精品| 欧美在线免费| 久久久91精品国产一区二区精品| 在线观看日韩专区| 亚洲第一精品夜夜躁人人躁 | 国产日韩欧美电影在线观看| 久久国产日韩| 美女精品在线| 亚洲天堂偷拍| 久久精品99国产精品| 亚洲国产精品va在线观看黑人| 亚洲高清在线精品| 欧美亚洲动漫精品| 久久久久国产一区二区三区四区| 老色鬼精品视频在线观看播放| 亚洲精品乱码| 亚洲图色在线| 亚洲高清三级视频| 一区二区三区 在线观看视频| 国产精品视频午夜| 欧美福利一区| 国产伦理一区| 欧美国产日韩精品| 欧美午夜电影网| 免费中文日韩| 欧美吻胸吃奶大尺度电影| 欧美在线视频免费观看| 浪潮色综合久久天堂| 亚洲欧美日韩国产综合| 久久午夜视频| 欧美伊人久久大香线蕉综合69| 美女福利精品视频| 欧美中文字幕在线观看| 欧美精品一区二区三区蜜臀| 久久久久国产一区二区| 欧美午夜电影在线| 欧美国产日韩视频| 国产网站欧美日韩免费精品在线观看| 亚洲人成欧美中文字幕| 国产日产亚洲精品系列| 亚洲国产日韩欧美在线99| 国产女人精品视频| 亚洲国产女人aaa毛片在线| 欧美午夜不卡视频| 亚洲第一区在线观看| 国产麻豆91精品| 亚洲欧洲综合| 精品成人久久| 欧美亚洲免费电影| 亚洲免费视频在线观看| 欧美国产一区视频在线观看 | 日韩午夜激情av| 欧美在线一级va免费观看| 亚洲人线精品午夜| 久久久国产精品一区二区中文 | 欧美影视一区| 欧美色大人视频| 亚洲国产天堂久久国产91| 国内激情久久| 午夜伦理片一区| 欧美伊人久久久久久午夜久久久久 | 久久精视频免费在线久久完整在线看| 欧美久久视频| 亚洲日本aⅴ片在线观看香蕉| 亚洲激情成人| 美女国内精品自产拍在线播放| 另类图片国产| 亚洲福利视频一区二区| 久久精品av麻豆的观看方式 | 亚洲网站视频福利| 亚洲一区免费| 国产精品亚洲一区二区三区在线| 99视频精品在线| 亚洲无毛电影| 欧美日韩综合另类| 宅男在线国产精品| 亚洲欧美清纯在线制服| 国产精品一区二区黑丝| 午夜日韩激情| 毛片精品免费在线观看| 国产综合色产在线精品| 久久综合狠狠| 亚洲东热激情| 99在线热播精品免费| 欧美日韩亚洲高清一区二区| 洋洋av久久久久久久一区| 亚洲一区二区在线看| 国产乱理伦片在线观看夜一区 | 欧美日本韩国| 亚洲图片在区色| 久久精品官网| 亚洲国产日韩欧美在线99| 欧美国产一区在线| 国产精品99久久久久久久vr | 亚洲国产一区二区三区a毛片| 欧美精品91| 亚洲一区精品电影| 久久综合给合久久狠狠狠97色69| 亚洲第一色在线| 欧美日韩国产123| 午夜亚洲伦理| 蜜桃av噜噜一区| 亚洲图片激情小说| 国产在线观看一区| 欧美成人精品一区| 亚洲视频www| 国模叶桐国产精品一区| 欧美国产国产综合| 亚洲欧美日韩一区二区| 欧美r片在线| 亚洲精品一区二区在线| 欧美三级日本三级少妇99| 性欧美videos另类喷潮| 美国成人直播| 性色av一区二区三区红粉影视| 1024欧美极品| 国产精品麻豆欧美日韩ww| 欧美在线观看日本一区| 亚洲国产成人在线| 久久国产66| 一本高清dvd不卡在线观看| 黄色成人91| 国产精品家庭影院| 欧美高清自拍一区| 亚洲欧美视频一区二区三区| 亚洲国产岛国毛片在线| 欧美一区网站| 午夜精品区一区二区三| 亚洲免费福利视频| 极品日韩av| 国产一区二区久久精品| 欧美日韩综合在线免费观看| 狼人天天伊人久久| 久久久www成人免费无遮挡大片 | 国产乱肥老妇国产一区二| 欧美日韩另类丝袜其他| 美女精品自拍一二三四| 欧美在线亚洲一区| 亚洲欧美乱综合| 一本色道久久综合一区| 欧美激情五月| 久久永久免费| 欧美一区二区在线视频| 亚洲女人天堂成人av在线| 夜久久久久久| 日韩午夜在线播放| 亚洲精品视频二区| 亚洲欧洲日本mm| 在线精品视频在线观看高清| 国产一区二区三区在线观看网站| 欧美午夜大胆人体| 欧美三级中文字幕在线观看| 欧美激情成人在线视频| 欧美成人首页| 欧美精品一区二区精品网| 久久婷婷色综合| 免费观看一区| 欧美韩日一区二区三区| 免费在线观看成人av| 欧美高清免费| 欧美激情亚洲自拍| 欧美激情aⅴ一区二区三区| 男女激情久久| 欧美日韩精品一本二本三本| 欧美日韩国产一区二区三区| 欧美片在线播放| 国产精品国码视频| 国产精品一香蕉国产线看观看| 国产精品一区二区在线| 国产日韩欧美亚洲一区| 国产一区二区精品在线观看| 国产一区亚洲一区| 1024精品一区二区三区| 亚洲精品一区二区在线观看| 在线视频精品一|