自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

給女朋友寫(xiě)了個(gè)TCP聊天程序,被鄙視了!

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
大一的時(shí)候,我開(kāi)始搗鼓用C語(yǔ)言做網(wǎng)絡(luò)編程,你們知道的,就是socket、bind、listen、accpet、recv、send那一套玩意兒。

[[387024]]

大一的時(shí)候,我開(kāi)始搗鼓用C語(yǔ)言做網(wǎng)絡(luò)編程,你們知道的,就是socket、bind、listen、accpet、recv、send那一套玩意兒。

我捧著一本從圖書(shū)館借來(lái)的書(shū),按照上面的提示,一行一行的照著敲到了電腦里,成功的寫(xiě)出了一個(gè)TCP的服務(wù)端和客戶端,可以用來(lái)收發(fā)消息。

不過(guò)客戶端和控制端都在我自己電腦上運(yùn)行,自己給自己發(fā)消息,沒(méi)意思。于是我把客戶端發(fā)給了室友,和他可以實(shí)現(xiàn)跨電腦通信了。

于是就在那黑乎乎的控制臺(tái)窗口上,我們聊起來(lái)了,雖然他就在我對(duì)面,雖然只是文字信息,雖然如此簡(jiǎn)陋,室友還是夸我厲害,讓我充滿了成就感,原來(lái)網(wǎng)絡(luò)編程這么有意思。

成功運(yùn)行以后,和室友們挑燈組隊(duì)玩了幾把穿越火線,高興~

[[387025]]

第二天,我開(kāi)始琢磨著,把客戶端發(fā)給我遠(yuǎn)在2公里以外的女朋友,這樣晚上的時(shí)候,我們?cè)诟髯缘乃奚峋陀盟鍽Q來(lái)聊天,想想還挺浪漫哈~

沒(méi)想到當(dāng)即就被鄙視了,就這黑乎乎的玩意?就不能做個(gè)漂亮的界面嗎?

是啊,就這玩意確實(shí)不好見(jiàn)人,至少得像QQ一樣,有個(gè)聊天界面,有個(gè)發(fā)送按鈕,要是還能發(fā)送圖片就更好了。

于是我又折騰了一個(gè)星期,用VC++ 弄了個(gè)簡(jiǎn)單的界面出來(lái),還從網(wǎng)上搞了一個(gè)漂亮的皮膚加上,這下漂亮多了。

我興奮的把程序發(fā)給女朋友,期待她投來(lái)崇拜的目光。

然鵝···

她居然在QQ上告訴我:彈了個(gè)窗口,提示連不上服務(wù)器!

我服務(wù)端開(kāi)著的啊?可就是死活連不上。

我迅速冷靜下來(lái),老師教過(guò),可以用ping命令看看網(wǎng)絡(luò)通不通。

我用QQ遠(yuǎn)程操作桌面過(guò)去,在她的電腦上ping我的電腦:

  1. ping 192.168.1.103 

哇靠!居然ping不通!

我弱弱的請(qǐng)教了有經(jīng)驗(yàn)的師兄,然后又被鄙視了:你這能ping通就怪了,這是局域網(wǎng)地址啊!

我一臉懵逼,啥叫局域網(wǎng)地址?為什么就ping不通?

那時(shí)的我,剛剛學(xué)了C語(yǔ)言,計(jì)算機(jī)網(wǎng)絡(luò)課程才剛剛接觸,用小白來(lái)形容完全不為過(guò)。

于是我開(kāi)始瘋狂充電,這才知道了什么叫公網(wǎng)地址,什么叫私有地址,知道了宿舍里的那個(gè)路由器,有一個(gè)叫NAT的功能,會(huì)將我們電腦上網(wǎng)的局域網(wǎng)私有地址偷偷改成公網(wǎng)地址,一出了宿舍,就是用公網(wǎng)地址在進(jìn)行通信了。

NAT的出現(xiàn)緩解了IP地址不夠用的問(wèn)題,可以讓宿舍里我們幾個(gè)人共用同一個(gè)IP地址上網(wǎng)。

現(xiàn)在看來(lái)很簡(jiǎn)單的技術(shù),但那時(shí)候不知道就是不知道啊,因此鬧了笑話。

于是我在路由器上找到了WLAN口的公網(wǎng)IP地址,替換了客戶端代碼中的服務(wù)端地址,重新編譯了一個(gè)包發(fā)給女朋友。

這下總該可以了吧?

然鵝,還是不行!

估計(jì)各位看到這里,心里也在說(shuō)那句話:這樣要是能行就怪了!

是的,雖然改成了公網(wǎng)地址,但還沒(méi)有配置路由器做轉(zhuǎn)發(fā)啊。

又折騰了半天,才學(xué)到了一個(gè)叫UPnP的東西,得去路由器上配置端口轉(zhuǎn)發(fā),將公網(wǎng)IP下的端口號(hào),映射到局域網(wǎng)下某個(gè)地址的某個(gè)端口,這樣擁有公網(wǎng)IP地址的路由器收到連接后才會(huì)轉(zhuǎn)發(fā)到我電腦上的服務(wù)端上。

我登錄到路由器后臺(tái),把我的服務(wù)端監(jiān)聽(tīng)的端口號(hào)做了映射配置,迫不及待的讓女朋友再試一次!

終于,這一次她告訴我:連上了!

終于,我給她發(fā)了第一條消息:Hello,World!

心情大好,中午加個(gè)葷菜~

用IP地址來(lái)建立連接終究不是好辦法,因?yàn)槁酚善魃系墓W(wǎng)IP經(jīng)常變來(lái)變?nèi)ィ看巫兞硕嫉靡匦戮幾g一個(gè)客戶端,可麻煩了。

要不然就每次手動(dòng)輸入,但我總不能留個(gè)輸入框讓女朋友每次都填寫(xiě)IP地址吧,她一定會(huì)質(zhì)問(wèn)我:為什么我登錄QQ,人家沒(méi)讓我填QQ的IP地址啊?

于是我又一陣搜索,了解到了可以域名代替IP的方式來(lái)解決這個(gè)問(wèn)題。

程序代碼中用域名替換IP,然后動(dòng)態(tài)解析成IP地址,服務(wù)端的IP地址再也不用寫(xiě)死到代碼中了。

但接著問(wèn)題來(lái)了,為了這么個(gè)破玩意兒還要去注冊(cè)個(gè)域名?注冊(cè)域名不得還要錢(qián)嗎?

公網(wǎng)IP經(jīng)常變,是不是每次變了都得去更改這個(gè)域名映射的IP,這也還是麻煩啊!

又雙叒經(jīng)過(guò)一陣研究,又了解到了一個(gè)叫DDNS動(dòng)態(tài)域名解析的玩意兒,一個(gè)叫花生殼的軟件,下載一個(gè)客戶端,把我的幾個(gè)問(wèn)題都安排的明明白白。

自己不用注冊(cè)域名,用這個(gè)花生殼下面的子域名就行,有了客戶端,隨時(shí)可以更改域名映射的IP地址,方便快捷。

再一次更改了我的程序,總算把這個(gè)問(wèn)題解決了。

不過(guò)新的問(wèn)題很快又來(lái)了,我這個(gè)程序只能服務(wù)端和客戶端雙方通信,要是有第三個(gè)人、第四個(gè)人要加入,這咋整呢?

繼續(xù)改!

說(shuō)回到今天寫(xiě)這篇文章的主題上來(lái)。

經(jīng)常有人在微信上問(wèn)我:軒轅,xxx該怎么學(xué)啊?我是小白,還有機(jī)會(huì)嗎?

其實(shí)吧,誰(shuí)不是從小白走過(guò)來(lái)的,誰(shuí)在學(xué)習(xí)的路上又沒(méi)被鄙視過(guò),沒(méi)鬧過(guò)笑話呢?所謂聞道有先后,術(shù)業(yè)有專攻,如是而已。

從我自己學(xué)習(xí)的經(jīng)歷總結(jié)來(lái)看,想要技術(shù)學(xué)的扎實(shí),光看課程和書(shū)籍是遠(yuǎn)遠(yuǎn)不夠的,得動(dòng)手!

去真正動(dòng)手做一些項(xiàng)目,遇到實(shí)際的問(wèn)題時(shí),你才知道那些各種各樣的技術(shù)是什么意思,又是為解決什么問(wèn)題而出現(xiàn)的,這比從書(shū)本上或博客里看來(lái)的要理解深刻得多。

工作幾年下來(lái)發(fā)現(xiàn),基礎(chǔ)知識(shí)積累最多最快的還是上大學(xué)那幾年。工作以后,像操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)與算法這些基礎(chǔ)課程知識(shí),日常工作中其實(shí)真正打交道的機(jī)會(huì)并不多,更多時(shí)間都是寫(xiě)寫(xiě)API接口,做下CRUD,堆一堆框架代碼積木,或者學(xué)習(xí)redis、mysql、rabbitmq、elasticsearch等第三方組件的使用。

在大學(xué)期間,我大致做過(guò)以下幾個(gè)項(xiàng)目:

  • 即時(shí)通訊軟件
  • 靜態(tài)Web服務(wù)器
  • 遠(yuǎn)程桌面控制軟件
  • 網(wǎng)絡(luò)流量還原軟件
  • Windows內(nèi)核ARK工具

雖然現(xiàn)在看來(lái)每一個(gè)做的都挺糙的,離實(shí)用還有不少距離,但基本功能是完成了,而且通過(guò)開(kāi)發(fā)這些東西,不僅對(duì)當(dāng)時(shí)的我編程能力有了不少的提升,而且在這個(gè)過(guò)程中,不斷發(fā)現(xiàn)新的技術(shù)名詞,打牢了基礎(chǔ),還學(xué)到了不少課本上沒(méi)有的東西。

如果你是剛剛?cè)胄械男率?,我的建議是,不僅要看書(shū),更要多動(dòng)手,Talk is cheap, show me the code!

本文轉(zhuǎn)載自微信公眾號(hào)「編程技術(shù)宇宙」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系編程技術(shù)宇宙公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 編程技術(shù)宇宙
相關(guān)推薦

2019-07-01 09:31:04

拉黑復(fù)活檢測(cè)器

2021-02-20 07:52:35

防猝死插件 IDEA

2021-02-02 11:59:15

插件開(kāi)發(fā)工具

2019-10-23 07:00:13

TCP三次握手四次揮手

2021-09-06 08:50:49

服務(wù)Dubbo參數(shù)

2019-03-12 09:43:14

反向代理正向代理服務(wù)器

2021-10-21 08:31:31

Spring循環(huán)依賴面試

2019-04-09 09:40:23

2020-03-16 14:08:59

線程熔斷限流

2021-04-06 06:23:18

MVCC并發(fā)事務(wù)

2021-09-14 12:00:11

VR字節(jié)跳動(dòng)

2019-10-09 10:45:16

云計(jì)算Web互聯(lián)網(wǎng)

2021-06-22 07:45:57

React18startTransiReact

2019-07-09 09:19:51

分布式事務(wù)App

2021-11-05 12:40:43

Python類(lèi)型語(yǔ)言代碼

2018-02-05 15:09:03

2020-12-14 10:25:08

DNS通信IP

2020-10-19 13:01:31

刪庫(kù)程序員思科

2019-04-19 09:48:53

樂(lè)觀鎖悲觀鎖數(shù)據(jù)庫(kù)

2021-05-19 11:02:44

PythonTurtle參數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)