1. 程式人生 > >vim C++開發環境外掛安裝詳解

vim C++開發環境外掛安裝詳解


C/C++是使用比例最高的程式語言,而vim是專為程式設計師開發的編輯器,當這兩者結合起來,會給我們帶來怎樣的效果呢。

對於windows上做C++開發的使用者來說,vs為他們做了大量的工作,語法高亮、自動縮排、智慧提示等等,當你happy的使用vs時,請記住一點,這是一個收費軟體,雖然在我大中華普遍都在使用微軟的盜版軟體,但作為程式設計師我們心裡應該知道這是不對的行為,然後再去——等等,我們今天討論的不是這個話題,我們要說的是Linux下的免費軟體vim!

vim外掛安裝的教程在網際網路上已經數不勝數,但是質量也參差不齊,很多都是在其它地方轉載copy,而且沒有註明使用環境,很多人安裝時發現無法work,最後搞得一團糟,今天這篇文章的宗旨只有兩個:1、使得安裝簡單;2、保證可以用。

閱讀這篇文章的前提是你至少使用過vim,知道基本的操作。下面就開始進入主題。

安裝環境

  • CentOS release 6.3 (Final)
  • VIM 7.2

本文的外掛安裝均在以上環境中進行,順帶也會提一下其它平臺的安裝方式。

準備工作

由於大多數vim外掛都可以在github上找到,而且通過git安裝、刪除、升級外掛都異常簡單,因此我們需要首先安裝git工具,如果不知道git和github,可以先自行Google

centos安裝

$ sudo yum install git

ubuntu安裝

$ sudo apt-get install git

Mac安裝

 由於Mac沒有像yum和apt-get一樣的包管理工具,需要先安裝一個類似的包管理工具,這對於安裝一些Linux命令是非常有幫助的

  1. $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  2. 通過brew安裝git

    $ brew install git

我將本文需要安裝的外掛和配置檔案都放在了github上,如果你不想大費周折的瞭解每個外掛的安裝方式,可以直接下載所有外掛即可使用,專案地址https://github.com/handy1989/vim,可以按照如下命令備份並一次安裝所有外掛(注意,從git上下載的vim目錄下都是隱藏檔案,ls -a可以檢視)

$ mv ~/.vimrc ~/.vimrcbak
$ mv ~/.vim ~/.vimbak
$ git clone https://github.com/handy1989/vim.git
$ mv vim/.vimrc ~/.vim ~/

第一個外掛

為了不讓外掛安裝後目錄顯得凌亂,我們很有必要安裝一個管理外掛的外掛,這樣功能的外掛有好幾個,這裡只推薦一個pathogen

專案地址

安裝

 可以通過git安裝,也可以直接下載外掛檔案,由於這個外掛只有一個檔案,我們選擇後者,而該外掛的說明文件上也是用的這種方法。

$ mkdir -p ~/.vim/autoload ~/.vim/bundle && 
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

然後,就沒有然後,這個外掛就安裝完了。是不是覺得so easy! 不過先別急,我們還要對外掛進行一些配置,用vim開啟~/.vimrc,輸入如下三行類容

execute pathogen#infect()
syntax on
filetype plugin indent on

儲存退出,這個外掛的安裝配置就完成了,怎麼驗證外掛有沒有生效呢,別急,後面有的是機會驗證。我們先來講講vim外掛是個什麼東西。

此時你的~/.vim目錄結構應該是這樣的

├── autoload
│   └── pathogen.vim
└── bundle

可見~/.vim目錄下是有兩個目錄,其中autoload放的是pathogen外掛,所謂的外掛其實就是一個指令碼,當vim啟動時,它會自動載入~/.vim/autoload目錄下的指令碼,由於你~/.vimrc裡配置了execute pathogen#infect(),所以它會去自動的執行腳本里這個函式,至於這個函式是怎麼實現的,我們不用管它,總之這個函式的功能就是去載入~/.vim/bundle目錄下你安裝的所有外掛,pathogen的管理方法大致就是這樣,而我們也看到,vim的外掛其實就是一個指令碼檔案,豐富一點的還會帶有說明文件等其它內容,後面我們碰到了再講解。

auto-pairs

專案地址

功能

自動匹配括號、引號等

安裝

$ git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs

這樣就將auto-pairs在github上的專案檔案下載到了~/.vim/bundle/auto-pairs目錄下

測試 

隨便開啟一個檔案,輸入左括號'(',看右括號是不是自動出現了,然後刪除左括號,看右括號是不是也被刪除了。當然功能遠不止這些,但常用的就這幾點。

NERDTree

專案地址

功能

顯示目錄樹

安裝

$ git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle

此時~/.vim/bundle/nerdtree下應該有如下幾個目錄和檔案

autoload
doc
lib
nerdtree_plugin
plugin
README.markdown
syntax

這幾個目錄是vim預設的外掛目錄,如果我們不是通過pathogen載入外掛,就需要在~/.vim目錄下建立對應的這幾個目錄,並將NERDTree對應的檔案拷到相應的目錄,這樣每個目錄下會放置多個外掛的內容,比如~/.vim/doc下就會放置所有外掛的幫組文件,而我們通過pathogen來管理,每個外掛的所有內容都放在同一個目錄中,比如這裡的NERDTree外掛的內容我們下載到了~/.vim/bundle/nerdtree下,直接刪除這個目錄即可刪除外掛,如果後續外掛有更新,在該目錄下通過git命令也可以很容易更新到最新版本。
開啟vim,在命令列模式下輸入:Helptags載入外掛的幫組文件,或者用:helptags help_dir載入指定目錄的幫組文件,其中help_dir是你需要載入的外掛幫組文件所在的目錄,比如這裡是~/.vim/bundle/nerdtree/doc

測試 

用vim開啟一個檔案,在命令列模式下輸入:NERDTree,然後回車,視窗左側就出現了vim工作目錄的目錄樹,如下圖所示 

將游標置於NERDTree視窗,按'?'可檢視幫助,NERDTree的操作很簡單,通常是將游標置於一個目錄/檔案上,通過一個按鍵來操作,下面列出幾個常用按鍵及其對應的操作

檔案相關操作
o  : 在游標所在的上一個視窗開啟檔案,並將游標置於新開啟的視窗
go : 預覽檔案,游標停留在NERDTree視窗中
t  : 在新標籤中開啟檔案並激活
gt : 在新標籤開啟檔案,游標留在NERDTree視窗中
i  : 水平分割開啟檔案
gi : 水平分割預覽
s  : 垂直分割開啟檔案
gs : 垂直分割預覽

目錄樹相關操作
o  : 展開/關閉目錄
O  : 遞迴展開目錄。慎用,如果目錄層級多,開啟會很慢
x  : 關閉父目錄
C  : 切換游標所在目錄為根目錄
u  : 切換目錄樹的根目錄為上層目錄
U  : 切換目錄樹的根目錄為上層目錄,並保持舊的目錄樹的狀態
r  : 重新整理當前目錄
R  : 重新整理當前根目錄(這個在新加入檔案後會用到)
cd : 切換vim工作目錄為游標所在目錄(命令模式下:pwd可檢視當前工作目錄)

為了方便開啟NERDTree,我們可以設定快捷鍵,開啟~/.vimrc,插入如下一行

map <C-n> :NERDTree<CR>

這樣,當開啟vim時,只要輸入ctrl+n即可開啟NERDTree

MiniBufExplorer

專案地址

功能

顯示已開啟的buffer

安裝

以6.3.2版本為例,根據專案地址可以找到對應版本的下載連結

$ mkdir -p ~/.vim/bundle/minibufexplorer/plugin && wget "http://www.vim.org/scripts/download_script.php?src_id=3640" -O ~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim

測試

用vim開啟一個檔案,此時看不到minibufexplorer視窗,因為預設是隻有一個buffer時不顯示視窗的,在命令列模式下通過:vsp filename開啟另一個檔案(或者用NERDTree瀏覽開啟其它檔案),看看此時視窗上方是不是出現了MiniBufExplorer的視窗,如下所示 

我們先來解釋一下什麼叫buffer,vim為每個開啟的檔案都建立了一個buffer,這個buffer儲存在記憶體中,為了下次開啟檔案時快速載入,比如我們通過NERDTree瀏覽並打開了多個檔案,即便某些檔案你退出了編輯,它的buffer仍舊是存在的,在命令模式下,我們輸入:ls可以檢視開啟的buffer列表,每一行前面的數字對應buffer的編號,通過輸入:b N,其中N代表buffer編號,可以開啟對應的buffer。對應上面的截圖,我們打開了兩個檔案,此時minibufexplorer視窗顯示有兩個buffer,即便我們關閉一個檔案,這兩個buffer仍然存在,將游標移到某個buffer的名稱上,回車可開啟對應的buffer,按d可刪除buffer,具體的操作可以直接閱讀外掛檔案,路徑為~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim

配置 

在~/.vimrc檔案中加入如下命令

let g:miniBufExplMaxSize = 2

該配置含義為minibufexplorer視窗最大高度為2行,預設是沒有上限的,你開啟的buffer足夠多,一會一直增長下去,為了方便閱讀我一般將它設為2,其它配置不怎麼用到,需要用的時候可以參考外掛檔案,並在~/.vimrc中新增配置

ctags+taglist+omnicppcomplete

接下來就到了重磅戲了,前面還只是一些視窗相關的基本操作,是為了方便瀏覽檔案,我們閱讀C++程式碼時希望能快速定位函式、變數,類似於VS等其它IDE提供的功能

ctags

這個並不是外掛,而是可執行程式,是用來對程式碼建索引,方便查詢的,有些Linux版本是自帶ctags的,如果沒有,按如下方式安裝

$ sudo yum install ctags

ubuntu安裝方式

$ sudo apt-get install ctags

mac也是自帶ctags的,但是那個不好用,可以重新安裝

$ brew install ctags

如果安裝失敗,看是不是因為/usr/bin/ctags檔案已經存在,可以先mv走,然後再執行

建立索引:在你程式碼的根目錄執行如下命令,會生成一個tags檔案,此時在程式碼根目錄下開啟一個檔案(vim預設只加載工作目錄下的tags檔案),將游標置於一個函式或結構體名字上,按ctr+]即可跳轉到該名稱的定義處,如果出現多個選項,可以輸入編號選擇對應跳轉的地方,按ctr+o可回到游標之前的位置

$ ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

taglist

taglist是vim的一個外掛,可以將程式碼內的函式、變數等按規律列出來,方便查詢

下載地址

$ cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=19574" -O taglist.zip && unzip taglist.zip -d taglist

這樣就生成了~/.vim/bundle/taglist目錄,該目錄的結構為

taglist
├── doc
│   └── taglist.txt
└── plugin
    └── taglist.vim

其中plugin目錄下為外掛檔案,doc目錄下為說明文件。開啟vim,在命令列模式下輸入:helptags ~/.vim/bundle/taglist/doc可以載入說明文件,然後輸入help taglist.txt則可以顯示說明文件

配置 

開啟~/.vimrc,輸入如下內容

let Tlist_Show_One_File=1    “ 只展示一個檔案的taglist
let Tlist_Exit_OnlyWindow=1  “ 當taglist是最後以個視窗時自動退出
let Tlist_Use_Right_Window=1 " 在右邊顯示taglist視窗
let Tlist_Sort_Type="name"   “ tag按名字排序

這幾行配置看名字就能知道什麼意思,引號後邊是說明,在vim配置檔案裡,雙引號代表註釋,類似於C語言裡的/

測試 

開啟一個檔案,在命令列模式下輸入:TlistToggle即可顯示taglist視窗,配合NERDTree一起效果如下 

OmniCppComplete

這是一個對C++進行語法補全的外掛,可以對函式、名稱空間、類成員等進行補全,使用起來和絕大多數IDE差不多,不一樣的是IDE為你做了很多你不知道的事情,而omni補全需要依賴tags檔案,需要你用ctags命令自己生成

下載地址

$ cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=7722" -O omnicppcomplete.zip && unzip omnicppcomplete.zip -d omnicppcomplete

該命令會生成~/.vim/bundle/omnicppcomplete目錄,目錄結構為

├── after
│   └── ftplugin
│       ├── cpp.vim
│       └── c.vim
├── autoload
│   └── omni
│       ├── common
│       │   ├── debug.vim
│       │   └── utils.vim
│       └── cpp
│           ├── complete.vim
│           ├── includes.vim
│           ├── items.vim
│           ├── maycomplete.vim
│           ├── namespaces.vim
│           ├── settings.vim
│           ├── tokenizer.vim
│           └── utils.vim
└── doc
    └── omnicppcomplete.txt

開啟vim,在命令列模式下輸入:helptags ~/.vim/bundle/omnicppcomplete/doc即可載入說明文件,輸入:help omnicppcomplete檢視說明文件

配置 

開啟~/.vimrc檔案,輸入

filetype plugin indent on
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2     " search namespaces in the current buffer   and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 " 顯示函式引數列表
let OmniCpp_MayCompleteScope = 1    " 輸入 :: 後自動補全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]

測試 

前面說過,omni外掛的補全是依賴於tags檔案的,因此需要我們手動建立tags檔案,假設現在有兩個檔案hello.h和hello.cpp如下 
我們在和這兩個檔案所在的目錄輸入

$ ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

這樣就生成了tags檔案,然後我們開啟main.cpp來測試,當輸入hello.h和hello.cpp中的函式或結構體時,通過按ctr+x ctr+o就可以自動補全了,效果如下

 
通過按ctr+n和ctr+p可以對候選項進行上下選擇。通過這種方式可以實現對函式、結構體的補全

對STL補全

 上面的方式只能對自己的程式碼進行補全,是當我們要使用其它庫比如STL甚至是第三方庫時就無法補全,原因很簡單,我們只對自己的程式碼建立了tags檔案,想要對其它庫進行補全,就必須對它們的原始碼建立tags檔案,所幸的是vim的外掛編寫者們早已解決了這個需求,並且他們專門針對STL標頭檔案進行了修改,以便能更好的適應omni的補全,首先下載STL原始碼,地址為http://www.vim.org/scripts/script.php?script_id=2358,可通過如下命令下載並解壓

$ mkdir -p ~/.vim/tags && cd ~/.vim/tags && wget "http://www.vim.org/scripts/download_script.php?src_id=9178" -O - | tar jxvf -

這樣就將STL的原始碼下載到了~/.vim/tags/cpp_src目錄下,我們在該目錄下執行ctags命令

$ ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

這樣就生成了~/.vim/tags/cpp_src/tags這個檔案,然後開啟~/.vimrc進行如下設定

set tags+=~/.vim/tags/cpp_src/tags

該命令是設定tags檔案的搜尋路徑,預設只有vim工作目錄的tags檔案,這樣設定之後就會同時載入指定目錄的tags檔案,你可以在後面新增更多其它第三方庫的tags檔案,現在對STL的補全效果如下

omnicppcomplete的補全設定雖然麻煩,但也讓我們更加清楚了外掛是怎樣工作的,作為程式設計師,至少應該對某些東西的工作原理搞清楚,而不是像使用IDE一樣不管任何東西,你想自定義一下東西也無從下手。

omnicppcomplete觸發補全需要用到ctr+x ctr+o,顯然這是不友好的,熟悉Linux命令列的人一定對shell命令的補全印象深刻,只需要按一下TAB鍵就可以進行補全,vim外掛的強大之處在於,它可以實現你幾乎所有的需求,想要用TAB鍵進行補全,就需要用到SuperTab

SuperTab

專案地址

安裝

 使用git進行安裝是最方便的

$ cd ~/.vim/bundle && git clone https://github.com/ervandew/supertab.git

測試

 無需任何配置即可使用,這時你想要補全變數名或函式名只需按一下TAB鍵即可,出現候選視窗之後也可以用TAB鍵進行選擇,這樣是不是方便了很多!
由於TAB鍵被對映成了補全快捷鍵,也就無法通過TAB鍵直接輸入製表符,這時如果想要輸入製表符可以通過ctr+v TAB即可,即先輸入ctr+v再輸入TAB鍵,在vim下通過ctl+v可以輸入很多不可見字元,比如試試ctr+v ctr+w

最終的配置檔案

裝了這麼多外掛,在配置檔案~/.vimrc裡也增添了不少內容,最後你的配置檔案至少應該包含以下內容

set tags+=~/.vim/tags/cpp_src/tags   " 設定tags搜尋路徑
syntax on
filetype plugin indent on

map <C-n> :NERDTree<CR>

" pathongen
execute pathogen#infect()

" taglist
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
let Tlist_Sort_Type="name"

" omnicppcomplete
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2     " search namespaces in the current buffer and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 " 顯示函式引數列表
let OmniCpp_MayCompleteScope = 1    " 輸入 :: 後自動補全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]

這個配置檔案全都是和外掛相關的配置,你還可以在裡面新增其它配置來靈活定製你的vim,由於本文主要介紹外掛相關內容,就不展開介紹了

總結

vim的C++開發環境到此就配好了,總的來說我們安裝了這麼幾類外掛

  1. 管理外掛的外掛
  2. 管理視窗和buffer
  3. 語法增強
  4. 程式碼補全

通過這些外掛我們可以將vim打造成一個好用的IDE,雖然經過了很多周折,但這些功夫都不會白費,一來我們可以通過這些外掛瞭解IDE的一些工作原理,二來通過這些外掛的安裝我們也更加了解了vim外掛的使用方法,有了這些基礎,後續如果想滿足一些個性化的需求,豈不易哉!

本文為作者原創,轉載請註明出處,多謝!

相關推薦

vim C++開發環境外掛安裝

C/C++是使用比例最高的程式語言,而vim是專為程式設計師開發的編輯器,當這兩者結合起來,會給我們帶來怎樣的效果呢。 對於windows上做C++開發的使用者來說,vs為他們做了大量的工作,語法高亮、自動縮排、智慧提示等等,當你happy的使用vs時,請記住一點,這

VS2010 SVN外掛安裝

前提條件 已經搭建好SVN伺服器。 1、安裝VS2010 SVN的外掛 推薦使用AnkhSvn-2.5.12040,下載地址:連結:https://pan.baidu.com/s/1XgHh4GxVTfOWLaHXAkAq8A  提取碼:yndg 2、安裝完成後,開啟VS2

elasticsearch外掛二—— kibana外掛安裝(Elasticsearch教程09)|MVP講堂

作者:阿里雲MVP 銘毅 一、kibana 外掛介紹kibana 外掛提供了Marvel監控的UI介面。 kibana是一個與elasticsearch一起工作的開源的分析和視覺化的平臺。使用kibana可以查詢、檢視並與儲存在elasticsearch索引的資料進行互動操作。使用kibana能執行高階的資

Elasticsearch外掛一——-head外掛安裝(Elasticsearch教程08)|MVP講堂

作者:阿里雲MVP 銘毅 往期內容:死磕 Elasticsearch 方法論:普通程式設計師高效精進的 10 大狠招!Elasticsearch學習,請先看這一篇!(Elasticsearch教程01)Elasticsearch增、刪、改、查操作深入詳解(Elasticsearch教程02) 一、elas

Elasticsearch5.4.0 IK分詞外掛安裝

1、ES5.4.0 IK分詞安裝步驟 步驟1:下載最新版的ik外掛 步驟2:解壓elasticsearch-analysis-ik-master.zip unzip elasticsearch-analysis-ik-master.zip

Go開發環境外掛安裝提示錯誤總結

ATOM ATOM 安裝執行 本人安裝的外掛列表 ATOM 提示gocode安裝失敗 錯誤如下 :/usr/local$ go get -u github.com/nsf/gocode go install github.

elasticsearch外掛三—— Marvel外掛安裝

一、Marvel外掛介紹 Marvel外掛:在簇中從每個節點彙集資料。這個外掛必須每個節點都得安裝。 Marvel是Elasticsearch的管理和監控工具,在開發環境下免費使用。它包含了一個叫做Sense的互動式控制檯,使使用者方便的通過瀏覽器直接與El

9.elasticsearch外掛四 logstash外掛安裝

銘毅天下,原文地址:blog.csdn.net/laoyang360 https://blog.csdn.net/wojiushiwo987/article/details/51472821一、logstash外掛介紹logstash是一個用來管理事件和日誌的工具,它的作用是

elasticsearch外掛一——-head外掛安裝

一、elasticsearch-head外掛介紹 elasticsearch-head是一個用來瀏覽、與Elastic Search簇進行互動的web前端展示外掛。 elasticsearch-head是一個用來監控Elastic Search狀態的客戶端外

Elasticsearch2.4學習(三)------Elasticsearch2.4外掛安裝

配置好Elasticsearch集群后,為了能夠進行更便捷的叢集狀態監控、更方便的查詢操作,還需要安裝一些外掛。 首先要說明的是,Elasticsearch的外掛非常之多,具體可以參考下面這篇文章(

vue開發環境搭建步驟

1.首先安裝node, npm環境(http://nodejs.cn/download/) node.js安裝配置步驟(https://www.runoob.com/nodejs/nodejs-install-setup.html) 安裝完成之後可以查詢到你安裝的node版本和npm版本,你電腦的環境變數

ZCU106開發之VIVADO開發環境安裝

感謝大家漫長的等待!! 我們團隊從去年底拿到ZCU106後就一直在進行相關研發,由於手頭上的活比較多就把ZCU106開發詳解的釋出給延遲了。 從本週開始我們團隊開始對我們在ZCU106開發過程中遇到的問題和解決辦法跟大家進行分享。我們的QQ群是836535064。希望跟大家一起玩好這一個牛逼的晶片。

圖文如何搭建Windows的Android C++開發環境(一)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Win10 IoT C#開發 1 - Raspberry安裝IoT系統及搭建開發環境

pla 微軟官方 鏡像文件 解壓 刷寫 win 10 操作 簡單 結束 原文:Win10 IoT C#開發 1 - Raspberry安裝IoT系統及搭建開發環境Windows 10 IoT Core 是微軟針對物聯網市場的一個重要產品,與以往的Windows版本不同,是為

caffe - windows上配置 C++ 開發環境 & ubuntu上安裝其它深度學習框架

過程 ubuntu 解決方案 ubun 核心 conda pytho 配置 caff windows 上配置C++開發環境的過程: ubuntu上配置caffe、tensorflow、mxnet的過程 基於 anaconda2 1、caffe pip不是

docker如何安裝jdk等外掛)(第四篇)共五篇

容器jdk以及tomcat的安裝 Docker容器中安裝jdk1.8 ① 進入容器 docker exec -ti [容器id] /bin/bash ② 建立容器系統的JAVA_HOME目錄 ③ 複製gz檔案到容器中的root的使用者目錄下,虛擬機器與容器之間檔案的拷貝 docker c

mac下安裝c++開發環境

mac下安裝c++開發環境 1 註冊apple id   按照apple註冊步驟註冊apple id,我註冊時遇到如下問題 apple store完成建立apple id步驟中,選擇付款方式和賬單地址後,總會提示“如需幫助,請聯絡itune支援”,進而導致apple store無法下載軟體

Visual C++網路程式設計經典案例 第2章 Winsock網路程式開發流程 基於UDP的Sockets程式設計 UDP伺服器

vc建立控制檯程式視窗的應用程式 命名為 UDP伺服器UDPSever.cpp #include<winsock2.h> #include<stdio.h> #include<windows.h> #pragma comment(lib,

Visual C++網路程式設計經典案例 第2章 Winsock網路程式開發流程 基於UDP的Sockets程式設計 UDP客戶端

在VC中建立UDP客戶端程式 控制檯 #include<winsock2.h> #include<stdio.h> #include<windows.h> #pragma comment(lib,"WS2_32.lib") int mai

Visual C++網路程式設計經典案例 第2章 Winsock網路程式開發流程 TCP伺服器程式 介面初始化

與TCP客戶端一樣 伺服器程式啟動時需要介面初始化 不管伺服器在初始化時 還應該同時完成套接字的建立以及地址繫結等處理工作 class CTCPDlg : public CDialog { // Construction public:     CTCPDlg(CWnd*