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

隨筆 - 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參數(shù)的含義,我們必須明白對于一個listening socket,kernel維護(hù)者兩個隊列:

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.一個未完成連接的隊列,此隊列維護(hù)著那些已收到了客戶端SYN分節(jié)信息,等待完成三路握手的連接,socket的狀態(tài)是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.一個已完成的連接的隊列,此隊列包含了那些已經(jīng)完成三路握手的連接,socket的狀態(tài)是ESTABLISHED

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

Berkeley-derived implementations add a fudge factor to the backlog: It is multiplied by 1.5
Berkely實現(xiàn)中的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.)
當(dāng)客戶端的第一個SYN到達(dá)的時候,TCP會在未完成隊列中增加一個新的記錄然后回復(fù)給客戶端三路握手中的第二個分節(jié)(服務(wù)端的SYN和針對客戶端的ACK),這條記錄會在未完成隊列中一直存在,直到三路握手中的最后一個分節(jié)到達(dá),或者直到超時(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."
如果當(dāng)客戶端SYN到達(dá)的時候隊列已滿,TCP將會忽略后續(xù)到達(dá)的SYN,但是不會給客戶端發(fā)送RST信息,因為此時允許客戶端重傳SYN分節(jié),如果返回錯誤信息,那么客戶端將無法分清到底是服務(wù)端對應(yīng)端口上沒有相應(yīng)應(yīng)用程序還是服務(wù)端對應(yīng)端口上隊列已滿這兩種情況

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

        今天看到有人在問這個問題,寫了下代碼,標(biāo)準(zhǔn)庫分離了算法和數(shù)據(jù)結(jié)構(gòu),按照這個框架寫程序確實比較方便,個人認(rèn)為熟讀和透徹理解標(biāo)準(zhǔn)庫源碼是每個想成為資深c++程序員的必修課,就框架結(jié)構(gòu)而論,stl很好的分離了算法和數(shù)據(jù)結(jié)構(gòu),就算法而論,標(biāo)準(zhǔn)庫里有很多常見算法的經(jīng)典實現(xiàn),所以有非常高的研究價值。

#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的線程庫不能強(qiáng)行終止,所以通過time_wait可以讓其自然的結(jié)束

 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就結(jié)束了
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 << "開始發(fā)送通知" << 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可以用類模板的偏特化實現(xiàn)。
posted @ 2009-02-09 17:59 許海斌 閱讀(1554) | 評論 (0)編輯 收藏

實現(xiàn)代碼:

    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_;
}
;



調(diào)用方式:

    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 就可以應(yīng)用這種RAII風(fēng)格的共享鎖實

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

 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)編輯 收藏
僅列出標(biāo)題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲香蕉网站| 欧美一级淫片aaaaaaa视频| 99v久久综合狠狠综合久久| 在线电影国产精品| 国产专区欧美精品| 国产综合视频| 依依成人综合视频| 亚洲国产欧美一区二区三区久久 | 久久国产精品99国产| 亚洲欧美日韩天堂| 欧美一区二区三区另类| 久久久水蜜桃av免费网站| 久久先锋影音| 欧美成人午夜免费视在线看片| 亚洲人屁股眼子交8| 亚洲免费成人| 亚洲一区二区伦理| 久久精品1区| 美国成人毛片| 欧美成人精品h版在线观看| 欧美激情偷拍| 一区二区三区精品视频| 香蕉成人久久| 久久青草久久| 欧美日韩99| 国产乱码精品一区二区三区五月婷 | 欧美视频在线看| 国产精品一区二区在线观看网站| 国内视频一区| av成人老司机| 久久动漫亚洲| 亚洲国产精品久久| 亚洲国产欧美另类丝袜| 亚洲人屁股眼子交8| 亚洲欧美国产另类| 美女网站在线免费欧美精品| 欧美亚洲不卡| 在线免费观看一区二区三区| 亚洲一区综合| 免费不卡欧美自拍视频| 一区二区成人精品| 久久久久久9| 欧美性猛交xxxx免费看久久久| 国产综合欧美| 一区二区电影免费在线观看| 久久免费国产| 一本大道久久精品懂色aⅴ| 久久精彩免费视频| 欧美午夜宅男影院在线观看| 在线观看亚洲视频| 亚洲欧美日韩一区| 欧美xx视频| 亚洲欧美在线网| 欧美日韩不卡在线| 在线观看国产日韩| 欧美一区二区三区免费看| 亚洲第一区色| 亚洲欧美国产高清| 欧美日韩国产区一| 136国产福利精品导航| 亚洲欧美激情精品一区二区| 欧美激情一区二区三级高清视频| 亚洲在线视频一区| 欧美理论电影在线观看| 激情成人亚洲| 性欧美video另类hd性玩具| 亚洲国产精品v| 久久精品观看| 国产精品日韩欧美大师| 一本久久青青| 欧美激情影院| 久久久久久尹人网香蕉| 国产欧美日韩在线| 亚洲免费视频中文字幕| 亚洲欧洲三级| 久久综合网色—综合色88| 国产一区二区精品久久99| 亚洲综合欧美| 亚洲人成欧美中文字幕| 久久综合图片| 国产日韩欧美另类| 午夜精品久久久久久99热软件| 亚洲黑丝一区二区| 免费黄网站欧美| 精品999网站| 久久精品国产精品亚洲综合| 亚洲一区二区精品| 欧美三级电影一区| 日韩一区二区免费高清| 欧美激情一区二区在线| 久久夜色精品一区| 尤物99国产成人精品视频| 久久精品欧美| 亚洲欧美综合另类中字| 欧美日韩亚洲一区三区| 中国亚洲黄色| a4yy欧美一区二区三区| 欧美日韩亚洲另类| 在线综合+亚洲+欧美中文字幕| 一区二区三区国产在线| 亚洲伦伦在线| 欧美国产一区二区在线观看 | 欧美一区二视频在线免费观看| 亚洲精品乱码久久久久久黑人| 欧美暴力喷水在线| 亚洲精品久久在线| 亚洲第一在线综合在线| 美女免费视频一区| 亚洲国产黄色片| 亚洲国产成人av在线| 欧美精品一区二| 一本色道久久88综合日韩精品| 亚洲精品免费在线| 欧美日韩精品在线观看| 亚洲一区久久久| 亚洲午夜一区二区三区| 国产欧美日韩免费看aⅴ视频| 久久精品毛片| 久久青草福利网站| 日韩图片一区| 亚洲手机在线| 国产欧美一区在线| 久久在线观看视频| 久久综合免费视频影院| 日韩天堂在线观看| 亚洲午夜一区二区三区| 国产一区二区在线观看免费播放| 麻豆9191精品国产| 欧美激情片在线观看| 亚洲欧美韩国| 久久精品天堂| 亚洲精品一区二区三区四区高清| 日韩视频在线观看免费| 国产伦精品一区二区三区四区免费| 久久精品最新地址| 欧美r片在线| 亚洲午夜国产一区99re久久| 亚洲一区二区三区在线观看视频 | 久久久噜噜噜久久| 日韩一区二区精品葵司在线| 亚洲欧美成人精品| 亚洲高清色综合| 日韩视频一区二区在线观看 | 免费欧美日韩| 99精品欧美一区二区蜜桃免费| 在线亚洲伦理| 精品动漫3d一区二区三区| 亚洲经典视频在线观看| 欧美日韩中字| 久久精品女人| 欧美精品免费视频| 久久精品国产99国产精品澳门| 欧美成人蜜桃| 欧美一区二区私人影院日本 | 久久国产一区二区三区| 母乳一区在线观看| 欧美一区二区高清| 免费视频一区| 午夜精品免费在线| 久久国产精品一区二区| 一本色道久久精品| 久久国产精品一区二区三区| 一本色道久久综合亚洲精品小说| 午夜欧美精品| 99综合在线| 久久成人免费电影| 亚洲香蕉伊综合在人在线视看| 久久久久国产精品www| 一本色道精品久久一区二区三区| 欧美资源在线| 亚洲午夜视频在线| 久久综合伊人| 欧美自拍偷拍| 欧美日韩网站| 欧美黄色aaaa| 国产一区二区三区观看| 亚洲精品视频二区| 在线观看91精品国产入口| 亚洲永久免费精品| 日韩一级精品| 久久影视三级福利片| 欧美一区二区视频在线观看2020| 欧美精品三级日韩久久| 久久先锋影音| 国产欧美精品久久| 亚洲美洲欧洲综合国产一区| 亚洲成在人线av| 先锋资源久久| 亚洲欧美制服中文字幕| 欧美激情一区二区三区在线视频观看 | 国产一区二区三区免费在线观看| 亚洲美女啪啪| 亚洲欧洲日韩女同| 久久精品人人| 久久av最新网址| 国产精品视频一二| 亚洲视频一区| 亚洲一区二区三区四区在线观看| 欧美国产丝袜视频| 亚洲第一搞黄网站|