中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站怎么做才能用手機打開網(wǎng)頁在線代理翻墻

網(wǎng)站怎么做才能用手機打開,網(wǎng)頁在線代理翻墻,計算機應(yīng)用技術(shù)主要學(xué)什么,東莞英文網(wǎng)站制作day16-重構(gòu)核心庫、使用智能指針(3) 最后將使用這個庫的方式進行展示。 1、客戶端 在while ((o getopt(argc, argv, optstring)) ! -1)所有的操作都是獲取參數(shù)的操作,threads 、msgs 和wait 分別指線程數(shù)、消息長度以及等待時間。 創(chuàng)建一…

day16-重構(gòu)核心庫、使用智能指針(3)

最后將使用這個庫的方式進行展示。

1、客戶端

在while ((o = getopt(argc, argv, optstring)) != -1)所有的操作都是獲取參數(shù)的操作,threads 、msgs 和wait 分別指線程數(shù)、消息長度以及等待時間。
創(chuàng)建一個長度為threads的線程池,綁定任務(wù)(這種方式常用于回調(diào)函數(shù)的綁定,可以將某個函數(shù)與特定的參數(shù)值綁定,形成一個新的函數(shù)對象,方便在后續(xù)使用),將任務(wù)不斷加入線程池中進行處理。

int main(int argc, char *argv[]) {int threads = 100;int msgs = 100;int wait = 0;int o = -1;const char *optstring = "t:m:w:";while ((o = getopt(argc, argv, optstring)) != -1) {switch (o) {case 't':threads = std::stoi(optarg);break;case 'm':msgs = std::stoi(optarg);break;case 'w':wait = std::stoi(optarg);break;case '?':printf("error optopt: %c\n", optopt);printf("error opterr: %d\n", opterr);break;default:break;}}ThreadPool *poll = new ThreadPool(threads);std::function<void()> func = std::bind(OneClient, msgs, wait);for (int i = 0; i < threads; ++i) {poll->Add(func);}delete poll;return 0;
}

OneClient作為任務(wù)函數(shù)創(chuàng)建了一個socket作為客戶端并與服務(wù)器進行連接,將連接中的讀/寫緩存進行初始化并新建連接,開始不斷從內(nèi)核進行寫讀。

void OneClient(int msgs, int wait) {Socket *sock = new Socket();sock->Create();sock->Connect("127.0.0.1", 1234);Connection *conn = new Connection(sock->fd(), nullptr);sleep(wait);int count = 0;while (count < msgs) {conn->set_send_buf("I'm client!");conn->Write();if (conn->state() == Connection::State::Closed) {conn->Close();break;}conn->Read();std::cout << "msg count " << count++ << ": " << conn->read_buf()->c_str() << std::endl;}delete sock;delete conn;
}

2、服務(wù)器

首先創(chuàng)建sever服務(wù)器,在這個過程中完成了MainReactor、創(chuàng)建socket、綁定、監(jiān)聽、創(chuàng)建一個線程池并創(chuàng)建多個子 Reactor 等一系列動作。

當程序接收到SIGINT信號時,即用戶按下Ctrl+C鍵時,會執(zhí)行所注冊的信號處理函數(shù)。在這個例子中,信號處理函數(shù)的作用是釋放服務(wù)器對象的內(nèi)存、輸出提示信息并正常退出程序。

設(shè)置連接發(fā)生時的回調(diào)函數(shù)以及接收數(shù)據(jù)的回調(diào)函數(shù)

int main() {TcpServer *server = new TcpServer();Signal::signal(SIGINT, [&] {delete server;std::cout << "\nServer exit!" << std::endl;exit(0);});server->onConnect([](Connection *conn) { std::cout << "New connection fd: " << conn->socket()->fd() << std::endl; });server->onRecv([](Connection *conn) {std::cout << "Message from client " << conn->read_buf()->c_str() << std::endl;conn->Send(conn->read_buf()->c_str());});server->Start();delete server;return 0;
}

主Reactor在主線程中運行,專門負責(zé)監(jiān)聽和分發(fā)新的連接請求,從而實現(xiàn)了整個服務(wù)器的高效事件處理。
當服務(wù)器啟動時:
1、主Reactor開始監(jiān)聽新的連接請求。
2、每當有新的連接到達時,主Reactor接受連接并將其分配給某個子Reactor。
3、子Reactor在自己的線程中運行,不斷地處理與該連接相關(guān)的讀寫事件。
4、由于所有的 Loop 方法都在獨立的線程中運行,因此它們可以并發(fā)地處理各自的事件,而不會互相阻塞。
子Reactor處理的事件在線程池的線程中,而主Reactor處理的事件在主線程中。各自會被EventLoop不斷輪詢,直到停止。

http://www.risenshineclean.com/news/55619.html

相關(guān)文章:

  • 起點網(wǎng)站書的封面怎們做百度搜索高級搜索技巧
  • 可視化建站網(wǎng)站源碼百度高級搜索首頁
  • 網(wǎng)站色情營銷特點鄭州seo管理
  • 在百度做網(wǎng)站需要什么資料2023重大新聞事件10條
  • app網(wǎng)站維護廣州網(wǎng)站建設(shè)推薦
  • 網(wǎng)站優(yōu)化有前途嗎b站好看的紀錄片免費
  • 咸陽b2c網(wǎng)站制作價格ai智能營銷系統(tǒng)
  • 男女做暖暖到網(wǎng)站手機上怎么制作網(wǎng)頁
  • 網(wǎng)站舉報網(wǎng)怎樣申請自己的電商平臺
  • 建設(shè)一個政府部門網(wǎng)站商丘網(wǎng)站推廣公司
  • 字節(jié)跳動小程序開發(fā)平臺seo網(wǎng)站編輯是做什么的
  • wordpress加密文章班級優(yōu)化大師免費下載app
  • 做網(wǎng)站公司百度關(guān)鍵詞點擊器
  • 溫州網(wǎng)站建設(shè)優(yōu)化自己的品牌怎么做加盟推廣
  • 模板網(wǎng)站 怎么做優(yōu)化谷歌官方網(wǎng)站注冊
  • 三門峽網(wǎng)站seo優(yōu)化網(wǎng)站排名的方法
  • 網(wǎng)站制作鄭州網(wǎng)站制作yoast seo
  • 電商網(wǎng)站用php做的嗎游戲推廣賺傭金平臺
  • 手機網(wǎng)站開發(fā) 手機模擬器發(fā)帖推廣平臺
  • 海外建站服務(wù)平臺網(wǎng)絡(luò)營銷策略分析報告
  • 做網(wǎng)站公司賺不賺錢成都百度網(wǎng)站排名優(yōu)化
  • wordpress站內(nèi)搜索統(tǒng)計制作網(wǎng)頁的工具軟件
  • 軟件開發(fā)模型及其特點優(yōu)化神馬網(wǎng)站關(guān)鍵詞排名價格
  • wordpress會員瀏覽網(wǎng)站排名優(yōu)化推廣
  • 網(wǎng)站備案名稱的影響嗎網(wǎng)絡(luò)推廣優(yōu)化
  • 鉆井網(wǎng)站建設(shè)電商代運營一般收多少服務(wù)費
  • 網(wǎng)站開發(fā)需要哪些人員產(chǎn)品推廣軟件有哪些
  • 外國人可以在中國做網(wǎng)站嗎百度線上推廣
  • 北京市住房和城鄉(xiāng)建設(shè)委員會網(wǎng)站6優(yōu)化seo深圳
  • wordpress 判斷管理員seo數(shù)據(jù)分析哪些方面