真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言魔術(shù)方法 go語言算法

Go 語言自我提升 (三次握手 - 四次揮手 - TCP狀態(tài)圖 - udp - 網(wǎng)絡(luò)文件傳輸)

三次握手:

為吉隆等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及吉隆網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、吉隆網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1. 主動(dòng)發(fā)起連接請(qǐng)求端(客戶端),發(fā)送 SYN 標(biāo)志位,攜帶數(shù)據(jù)包、包號(hào)

2. 被動(dòng)接收連接請(qǐng)求端(服務(wù)器),接收 SYN,回復(fù) ACK,攜帶應(yīng)答序列號(hào)。同時(shí),發(fā)送SYN標(biāo)志位,攜帶數(shù)據(jù)包、包號(hào)

3. 主動(dòng)發(fā)起連接請(qǐng)求端(客戶端),接收SYN 標(biāo)志位,回復(fù) ACK。

被動(dòng)端(服務(wù)器)接收 ACK —— 標(biāo)志著 三次握手建立完成( Accept()/Dial() 返回 )

四次揮手:

1. 主動(dòng)請(qǐng)求斷開連接端(客戶端), 發(fā)送 FIN標(biāo)志,攜帶數(shù)據(jù)包

2. 被動(dòng)接受斷開連接端(服務(wù)器), 發(fā)送 ACK標(biāo)志,攜帶應(yīng)答序列號(hào)。 —— 半關(guān)閉完成。

3. 被動(dòng)接受斷開連接端(服務(wù)器), 發(fā)送 FIN標(biāo)志,攜帶數(shù)據(jù)包

4. 主動(dòng)請(qǐng)求斷開連接端(客戶端), 發(fā)送 最后一個(gè) ACK標(biāo)志,攜帶應(yīng)答序列號(hào)?!?發(fā)送完成,客戶端不會(huì)直接退出,等 2MSL時(shí)長(zhǎng)。

等 2MSL待目的:確保服務(wù)器 收到最后一個(gè)ACK

滑動(dòng)窗口:

通知對(duì)端本地存儲(chǔ)數(shù)據(jù)的 緩沖區(qū)容量?!?write 函數(shù)在對(duì)端 緩沖區(qū)滿時(shí),有可能阻塞。

TCP狀態(tài)轉(zhuǎn)換:

1. 主動(dòng)發(fā)起連接請(qǐng)求端:

CLOSED —— 發(fā)送SYN —— SYN_SENT(了解) —— 接收ACK、SYN,回發(fā) ACK —— ESTABLISHED (數(shù)據(jù)通信)

2. 主動(dòng)關(guān)閉連接請(qǐng)求端:

ESTABLISHED —— 發(fā)送FIN —— FIN_WAIT_1 —— 接收ACK —— FIN_WAIT_2 (半關(guān)閉、主動(dòng)端)

—— 接收FIN、回復(fù)ACK —— TIME_WAIT (主動(dòng)端) —— 等 2MSL 時(shí)長(zhǎng) —— CLOSED

3. 被動(dòng)建立連接請(qǐng)求端:

CLOSED —— LISTEN —— 接收SYN、發(fā)送ACK、SYN —— SYN_RCVD —— 接收 ACK —— ESTABLISHED (數(shù)據(jù)通信)

4. 被動(dòng)斷開連接請(qǐng)求端:

ESTABLISHED —— 接收 FIN、發(fā)送 ACK —— CLOSE_WAIT —— 發(fā)送 FIN —— LAST_ACK —— 接收ACK —— CLOSED

windows下查看TCP狀態(tài)轉(zhuǎn)換:

netstat -an | findstr? 端口號(hào)

Linux下查看TCP狀態(tài)轉(zhuǎn)換:

netstat -an | grep? 端口號(hào)

TCP和UDP對(duì)比:?

TCP: 面向連接的可靠的數(shù)據(jù)包傳遞。 針對(duì)不穩(wěn)定的 網(wǎng)絡(luò)層,完全彌補(bǔ)。ACK

UDP:無連接不可靠的報(bào)文傳輸。 針對(duì)不穩(wěn)定的 網(wǎng)絡(luò)層,完全不彌補(bǔ)。還原網(wǎng)絡(luò)真實(shí)狀態(tài)。

優(yōu)點(diǎn)???????????????????????????????????????????????????????????? 缺點(diǎn)

TCP: 可靠、順序、穩(wěn)定 ???????????????????????????????????? 系統(tǒng)資源消耗大,程序?qū)崿F(xiàn)繁復(fù)、速度慢

UDP:系統(tǒng)資源消耗小,程序?qū)崿F(xiàn)簡(jiǎn)單、速度快 ???????????????????????? 不可靠、無序、不穩(wěn)定

使用場(chǎng)景:

TCP:大文件、可靠數(shù)據(jù)傳輸。 對(duì)數(shù)據(jù)的 穩(wěn)定性、準(zhǔn)確性、一致性要求較高的場(chǎng)合。

UDP:應(yīng)用于對(duì)數(shù)據(jù)時(shí)效性要求較高的場(chǎng)合。 網(wǎng)絡(luò)直播、電話會(huì)議、視頻直播、網(wǎng)絡(luò)游戲。

UDP-CS-Server實(shí)現(xiàn)流程:

1.? 創(chuàng)建 udp地址結(jié)構(gòu) ResolveUDPAddr(“協(xié)議”, “IP:port”) —— udpAddr 本質(zhì) struct{IP、port}

2.? 創(chuàng)建用于 數(shù)據(jù)通信的 socket ListenUDP(“協(xié)議”, udpAddr ) —— udpConn (socket)

3.? 從客戶端讀取數(shù)據(jù),獲取對(duì)端的地址 udpConn.ReadFromUDP() —— 返回:n,clientAddr, err

4.? 發(fā)送數(shù)據(jù)包給 客戶端 udpConn.WriteToUDP("數(shù)據(jù)", clientAddr)

UDP-CS-Client實(shí)現(xiàn)流程:

1.? 創(chuàng)建用于通信的 socket。 net.Dial("udp", "服務(wù)器IP:port") —— udpConn (socket)

2.? 以后流程參見 TCP客戶端實(shí)現(xiàn)源碼。

UDPserver默認(rèn)就支持并發(fā)!

------------------------------------

命令行參數(shù): 在main函數(shù)啟動(dòng)時(shí),向整個(gè)程序傳參。 【重點(diǎn)】

語法: go run xxx.go ? argv1 argv2? argv3? argv4 。。。

xxx.exe:? 第 0 個(gè)參數(shù)。

argv1 :第 1 個(gè)參數(shù)。

argv2 :第 2 個(gè)參數(shù)。

argv3 :第 3 個(gè)參數(shù)。

argv4 :第 4 個(gè)參數(shù)。

使用: list := os.Args? 提取所有命令行參數(shù)。

獲取文件屬性函數(shù):

os.stat(文件訪問絕對(duì)路徑) —— fileInfo 接口

fileInfo 包含 兩個(gè)接口。

Name() 獲取文件名。 不帶訪問路徑

Size() 獲取文件大小。

網(wǎng)絡(luò)文件傳輸 —— 發(fā)送端(客戶端)

1.? 獲取命令行參數(shù),得到文件名(帶路徑)filePath list := os.Args

2.? 使用 os.stat() 獲取 文件名(不帶路徑)fileName

3.? 創(chuàng)建 用于數(shù)據(jù)傳輸?shù)?socket? net.Dial("tcp", “服務(wù)器IP+port”) —— conn

4.? 發(fā)送文件名(不帶路徑)? 給接收端, conn.write()

5.? 讀取 接收端回發(fā)“ok”,判斷無誤。封裝函數(shù) sendFile(filePath, conn) 發(fā)送文件內(nèi)容

6.? 實(shí)現(xiàn) sendFile(filePath,? conn)

1) 只讀打開文件 os.Open(filePath)

for {

2) 從文件中讀數(shù)據(jù)? f.Read(buf)

3) 將讀到的數(shù)據(jù)寫到socket中? conn.write(buf[:n])

4)判斷讀取文件的 結(jié)尾。 io.EOF. 跳出循環(huán)

}

網(wǎng)絡(luò)文件傳輸 —— 接收端(服務(wù)器)

1. 創(chuàng)建用于監(jiān)聽的 socket net.Listen() —— listener

2. 借助listener 創(chuàng)建用于 通信的 socket listener.Accpet()? —— conn

3. 讀取 conn.read() 發(fā)送端的 文件名, 保存至本地。

4. 回發(fā) “ok”應(yīng)答 發(fā)送端。

5. 封裝函數(shù),接收文件內(nèi)容 recvFile(文件路徑)

1) f = os.Create(帶有路徑的文件名)

for {

2)從 socket中讀取發(fā)送端發(fā)送的 文件內(nèi)容 。 conn.read(buf)

3)? 將讀到的數(shù)據(jù) 保存至本地文件 f.Write(buf[:n])

4)? 判斷 讀取conn 結(jié)束, 代表文件傳輸完成。 n == 0? break

}

如何用got完成部件的轉(zhuǎn)動(dòng)

? ??

當(dāng)前位置: Language Tips Columnist 專欄作家 津津樂道

萬能動(dòng)詞“GET”的主要用法

中國(guó)日?qǐng)?bào)網(wǎng) 2016-10-12 11:27

分享到

? ? ? ? ?

英語中,“GET”作動(dòng)詞時(shí),它不僅內(nèi)涵非常豐富,而且其用法頗為復(fù)雜。它是一個(gè)萬能動(dòng)詞,備受英語人士青睞。關(guān)于GET的使用頻率和語體風(fēng)格,英國(guó)著名詞匯專家皮爾索爾(J. Pearsall)女士在1998年出版的《新牛津英語詞典》中特地指出:GET是五個(gè)最常用的英語動(dòng)詞之一,但它常用于非正式的口語或書面語中。為了敘述方便,下面從詞性功能的角度,簡(jiǎn)要?dú)w納一下GET的語義及語用特點(diǎn),以便英語學(xué)習(xí)者能正確掌握這一萬能動(dòng)詞的主要用法。

?

一、及物動(dòng)詞

及物動(dòng)詞get的用法很多,但在每種搭配中g(shù)et的意義是不完全相同的。

1.用于get+sb(sth);意為“叫來某人(得到某物)”。例如:

Please go and get him. [請(qǐng)你去把他叫來。]

She got high marks in the final examination. [她在期末考試中得了高分。]

2.用于get+sb+sth/get+sth+for sb;意為“為某人弄到某物”。例如:

I'll get you a drink. [我去個(gè)你拿杯飲料來。]

Could you get a school timetable for me? [你能幫我弄張課程表嗎?]

3.用于“get+名詞+賓補(bǔ)”,該賓語補(bǔ)足語可以是:

1)不定式;意為“使……做……”(具有使役性)。例如:

You must get them to come here. [你必須讓他們來這里。]

He couldn't get the car to start and went by bus. [他因無法發(fā)動(dòng)車子,所以就乘公共汽車去。]

2)現(xiàn)在分詞;意為“使……(開始)起來”或處于某種狀態(tài)。例如:

What he said got us thinking. [他說話使我們思考起來。]

Can you get the machine running? [你能把這機(jī)器發(fā)動(dòng)起來嗎? ]

3)過去分詞;其中的過去分詞表示被動(dòng)關(guān)系。例如:

We get our milk delivered. [我們訂的牛奶送到了。]

You must get the work done by Friday. [你必須最遲在星期五以前把工作做完。]

值得注意的是,這種被動(dòng)關(guān)系有時(shí)可能表示某種遭遇;這主要取決于過去分詞的含義。例如:

He got his watch stolen. [他的手表被偷了。]

Ina got her fingers caught in the door. [艾娜的手指讓門給夾住了。]

另外,“get sth done”和“have sth done”在語義及語用上都有區(qū)別;前者通常表示動(dòng)作讓別人完成,后者通常表示動(dòng)作由自己完成。例如:

She got her hair cut yesterday. [她昨天剪了頭發(fā)(別人剪的)。]

A week ago I had a hundred dollars saved. [一個(gè)星期前我節(jié)省了一百美元(自己省的)。]

4)形容詞;意為“使……(變成某種狀態(tài))”。例如:

What he said got us angry. [他說的話讓我們很生氣。]

We've got everything ready. [我們已把一切都準(zhǔn)備好了。]

二、不及物動(dòng)詞

不及物動(dòng)詞get的用法也很多,不同的搭配有不同的意義。

1.用于“get+形容詞”;get相當(dāng)于系動(dòng)詞,構(gòu)成系表結(jié)構(gòu)說明主語的狀況、性質(zhì)、特征等情況。例如:

She got sick. [她生病了。]

Please don't get angry. [請(qǐng)不要生氣。]

值得一提的是,英國(guó)著名語法專家斯旺(M. Swan)先生在1980年出版的專著《實(shí)用英語慣用法》中指出:get不能與表示顏色的形容詞構(gòu)成系表結(jié)構(gòu)。例如不說:

* Leaves get brown.

但可以把get改為go:Leaves go brown.[樹葉變棕色。]

另外,get用進(jìn)行時(shí)態(tài)來表示狀態(tài)的改變。例如:

The weather is getting cold. [天氣逐漸變冷。]

I'm getting very deaf, you know. [你知道,我的耳朵越來越聾了。]

用進(jìn)行時(shí)態(tài)的get還可以與形容詞的比較級(jí)連用,強(qiáng)調(diào)漸進(jìn)過程。例如:

The things are getting worse. [事情變更糟了。]

Our life is getting better and better. [我們的生活是越來越好了。]

2.用于“get+副詞”,表示位置的變換;其中一些已成為成語。例如:

Where did you get on? [你上哪兒去了?]

The news soon got abroad. [這消息很快就傳開了。]

3.用于“get+不定式”(構(gòu)成復(fù)合謂語),表示一種狀態(tài)的變化。例如:

How did you get to be captain? [你怎么當(dāng)上隊(duì)長(zhǎng)的?]

I'll never get to understand him. [我永遠(yuǎn)不會(huì)理解他。]

4.用于“get+現(xiàn)在分詞”;這種用法主要見于美國(guó)英語。例如:

We'd better get going, I suppose. [我想我們最好趕緊動(dòng)身。]

They got talking and didn't notice the time. [他們談了起來并沒有注意時(shí)間。]

5.用于“get+過去分詞”;這時(shí)get表示的是相當(dāng)于become(即系動(dòng)詞)的意思,后面的過去分詞屬形容詞范疇(即形容詞化的過去分詞),作主語補(bǔ)語。例如:

He got very worried. [他變得很擔(dān)心。]

She gets easily excited. [她很容易激動(dòng)。]

三、助動(dòng)詞

get作為助動(dòng)詞,它與過去分詞構(gòu)成被動(dòng)語態(tài)(即Get-Passive)。中國(guó)著名語言學(xué)家周海中先生在1990年發(fā)表的論文《Get-Passive研究》中指出:目前,Get-Passive的使用還沒有Be-Passive那么廣泛,一般限于口語和非正式書面語;然而,這一被動(dòng)語態(tài)卻有著用得愈來愈多的趨勢(shì),這種語言現(xiàn)象很值得我們重視和研究。

Get-Passive除了在形式和語體上與Be-Passive有區(qū)別外,在語義及語用上也有其特點(diǎn)。美國(guó)著名語言學(xué)家伯恩斯坦(T. Bernstein)先生在1981年出版的專著《注意你的語言》中認(rèn)為:當(dāng)強(qiáng)調(diào)狀態(tài)時(shí),最好使用Be-Passive;當(dāng)強(qiáng)調(diào)動(dòng)作時(shí),最好使用Get-Passive。他給了一個(gè)頗有趣的例句:She has been married, so often you might think she enjoys just getting married, not being married.

Get-Passive明確地表示做出動(dòng)作的時(shí)間,而Be-Passive則表示動(dòng)作造成的狀態(tài)的持續(xù)時(shí)限。例如:

At that time he was not yet married, but he got married in 1920. [當(dāng)時(shí)他還沒有結(jié)婚,但他在1920年結(jié)婚了。]

因?yàn)镚et-Passive具有這一語義特點(diǎn),所以以下一句不能成立:

* He got married a long time.

但我們可以說:He was married a long time. [他結(jié)婚很長(zhǎng)時(shí)間了。]

就感情色彩而言, Get-Passive一般都有不利、不幸、不愉快或不如意的意義色彩;而Be-Passive可以表示褒義、貶義或中性意義。例如:

John got arrested by the police. [約翰被警察逮捕了。]

Mariah got dismissed from the service. [瑪麗亞被解雇了。]

某些動(dòng)詞用于Get-Passive時(shí),雖然在形式上是被動(dòng)的,但在意義上卻是主動(dòng)的。例如:

We got started at noon. = We started at noon. [我們中午開始。]

Good-bye and write me as soon as you get settled. = Good-bye and write me as soon as you settle. [再見,你安頓下來后盡快給我寫信。]

這類動(dòng)詞還有confuse[迷惑]、divorce[離婚]、dress[穿著]、engage[訂婚]、lost[迷路]、marry[結(jié)婚]、wash[洗凈]等。

最后一提的是,由動(dòng)詞get構(gòu)成的成語,如get hell[受嚴(yán)厲處罰]、get hot[惱怒,生氣]、get nowhere[無效,徒勞]、get out[出去,離開]、get rid of[擺脫,除去]、get through with[做完,辦完]等就有近百條。這些成語既有字面意義,又有引申意義或比喻意義。它們是英語寶庫中的明珠,其用法同樣值得學(xué)習(xí)者掌握。

本文僅代表作者本人觀點(diǎn),與本網(wǎng)立場(chǎng)無關(guān)。歡迎大家討論學(xué)術(shù)問題,尊重他人,禁止人身攻擊和發(fā)布一切違反國(guó)家現(xiàn)行法律法規(guī)的內(nèi)容。

(本文作者為英國(guó)牛津大學(xué)訪問學(xué)者 林娜博士)

上一篇 : 《Madam Secretary》中的經(jīng)典口語句型

下一篇 : 安全:到底是safety,還是security?

分享到

? ? ? ? ?

中國(guó)日?qǐng)?bào)網(wǎng)英語點(diǎn)津版權(quán)說明:凡注明來源為“中國(guó)日?qǐng)?bào)網(wǎng)英語點(diǎn)津:XXX(署名)”的原創(chuàng)作品,除與中國(guó)日?qǐng)?bào)網(wǎng)簽署英語點(diǎn)津內(nèi)容授權(quán)協(xié)議的網(wǎng)站外,其他任何網(wǎng)站或單位未經(jīng)允許不得非法盜鏈、轉(zhuǎn)載和使用,違者必究。如需使用,請(qǐng)與010-84883561聯(lián)系;凡本網(wǎng)注明“來源:XXX(非英語點(diǎn)津)”的作品,均轉(zhuǎn)載自其它媒體,目的在于傳播更多信息,其他媒體如需轉(zhuǎn)載,請(qǐng)與稿件來源方聯(lián)系,如產(chǎn)生任何問題與本網(wǎng)無關(guān);本網(wǎng)所發(fā)布的歌曲、電影片段,版權(quán)歸原作者所有,僅供學(xué)習(xí)與研究,如果侵權(quán),請(qǐng)?zhí)峁┌鏅?quán)證明,以便盡快刪除。

你可能還感興趣的文章

?

川普推特撕X闖禍 美民眾:你還是關(guān)了吧

?

《星球大戰(zhàn)》粉絲要求把萊婭公主正式列入迪士尼公主

?

《單身日記3:好孕來襲》電影精講(視頻)

?

關(guān)于《神夏》你不知道的十件事

go 語言中的 rune

rune是Go語言中一種特殊的數(shù)據(jù)類型,它是int32的別名,幾乎在所有方面等同于int32,用于區(qū)分字符值和整數(shù)值,官方解釋如下:

下面我們通過一個(gè)例子來看一下:

我們猜測(cè)一下結(jié)果,hello5 個(gè)字符+1 個(gè)空格+3 個(gè)漢子,算起來應(yīng)該是 9 個(gè),長(zhǎng)度為 9 才對(duì),但是我們執(zhí)行一下,

結(jié)果打印是 15,這是為什么呢?

所以計(jì)算出的長(zhǎng)度就等于 5+1+3*3=15

如果我們需要計(jì)算出字符串的長(zhǎng)度,而不是底層字節(jié)的個(gè)數(shù),那么可以使用下面的方法:

運(yùn)行結(jié)果如下:

在 rune 定義上方還有一個(gè),byte = uint8


本文名稱:go語言魔術(shù)方法 go語言算法
文章起源:http://weahome.cn/article/dodpejc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部