給女朋友寫了個TCP聊天程序拷获,被鄙視了篮撑!

大一的時候,我開始搗鼓用C語言做網(wǎng)絡(luò)編程匆瓜,你們知道的咽扇,就是socket、bind陕壹、listen质欲、accpet、recv糠馆、send那一套玩意兒嘶伟。

我捧著一本從圖書館借來的書,按照上面的提示又碌,一行一行的照著敲到了電腦里九昧,成功的寫出了一個TCP的服務(wù)端和客戶端,可以用來收發(fā)消息毕匀。

不過客戶端和控制端都在我自己電腦上運(yùn)行铸鹰,自己給自己發(fā)消息,沒意思皂岔。于是我把客戶端發(fā)給了室友蹋笼,和他可以實現(xiàn)跨電腦通信了。

于是就在那黑乎乎的控制臺窗口上,我們聊起來了剖毯,雖然他就在我對面圾笨,雖然只是文字信息,雖然如此簡陋逊谋,室友還是夸我厲害擂达,讓我充滿了成就感,原來網(wǎng)絡(luò)編程這么有意思胶滋。

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

圖片

第二天究恤,我開始琢磨著穗熬,把客戶端發(fā)給我遠(yuǎn)在2公里以外的女朋友,這樣晚上的時候丁溅,我們在各自的宿舍就用它代替QQ來聊天唤蔗,想想還挺浪漫哈~

圖片

沒想到當(dāng)即就被鄙視了,就這黑乎乎的玩意窟赏?就不能做個漂亮的界面嗎妓柜?

是啊,就這玩意確實不好見人涯穷,至少得像QQ一樣棍掐,有個聊天界面,有個發(fā)送按鈕拷况,要是還能發(fā)送圖片就更好了作煌。

于是我又折騰了一個星期,用VC++ 弄了個簡單的界面出來赚瘦,還從網(wǎng)上搞了一個漂亮的皮膚加上粟誓,這下漂亮多了。

我興奮的把程序發(fā)給女朋友起意,期待她投來崇拜的目光鹰服。

然鵝···

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

圖片

我服務(wù)端開著的氨帷?可就是死活連不上亲善。

我迅速冷靜下來设易,老師教過,可以用ping命令看看網(wǎng)絡(luò)通不通蛹头。

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

ping 192.168.1.103

哇靠戏溺!居然ping不通!

我弱弱的請教了有經(jīng)驗的師兄挟冠,然后又被鄙視了:你這能ping通就怪了,這是局域網(wǎng)地址芭鬯知染!

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

圖片

那時的我,剛剛學(xué)了C語言止潘,計算機(jī)網(wǎng)絡(luò)課程才剛剛接觸掺炭,用小白來形容完全不為過。

于是我開始瘋狂充電凭戴,這才知道了什么叫公網(wǎng)地址涧狮,什么叫私有地址,知道了宿舍里的那個路由器么夫,有一個叫NAT的功能者冤,會將我們電腦上網(wǎng)的局域網(wǎng)私有地址偷偷改成公網(wǎng)地址,一出了宿舍档痪,就是用公網(wǎng)地址在進(jìn)行通信了涉枫。

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

現(xiàn)在看來很簡單的技術(shù)愿汰,但那時候不知道就是不知道啊,因此鬧了笑話乐纸。

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

這下總該可以了吧泵督?

然鵝,還是不行庶喜!

估計各位看到這里小腊,心里也在說那句話:這樣要是能行就怪了!

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

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

我登錄到路由器后臺,把我的服務(wù)端監(jiān)聽的端口號做了映射配置棱烂,迫不及待的讓女朋友再試一次租漂!

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

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

心情大好业筏,中午加個葷菜~

圖片

用IP地址來建立連接終究不是好辦法,因為路由器上的公網(wǎng)IP經(jīng)常變來變?nèi)ツ窈眨看巫兞硕嫉靡匦戮幾g一個客戶端蒜胖,可麻煩了。

要不然就每次手動輸入抛蚤,但我總不能留個輸入框讓女朋友每次都填寫IP地址吧翠勉,她一定會質(zhì)問我:為什么我登錄QQ,人家沒讓我填QQ的IP地址懊沟摺对碌?

圖片

于是我又一陣搜索,了解到了可以域名代替IP的方式來解決這個問題蒿偎。

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

但接著問題來了骑脱,為了這么個破玩意兒還要去注冊個域名?注冊域名不得還要錢嗎苍糠?

公網(wǎng)IP經(jīng)常變叁丧,是不是每次變了都得去更改這個域名映射的IP,這也還是麻煩霸啦t∮德Γ?/p>

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

圖片

自己不用注冊域名摊欠,用這個花生殼下面的子域名就行丢烘,有了客戶端,隨時可以更改域名映射的IP地址些椒,方便快捷播瞳。

再一次更改了我的程序,總算把這個問題解決了免糕。

不過新的問題很快又來了赢乓,我這個程序只能服務(wù)端和客戶端雙方通信,要是有第三個人说墨、第四個人要加入骏全,這咋整呢苍柏?

繼續(xù)改尼斧!

圖片

說回到今天寫這篇文章的主題上來。

經(jīng)常有人在微信上問我:軒轅试吁,xxx該怎么學(xué)肮卓谩?我是小白熄捍,還有機(jī)會嗎烛恤?

其實吧,誰不是從小白走過來的余耽,誰在學(xué)習(xí)的路上又沒被鄙視過缚柏,沒鬧過笑話呢?所謂聞道有先后碟贾,術(shù)業(yè)有專攻币喧,如是而已。

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

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

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

在大學(xué)期間借浊,我大致做過以下幾個項目:

  • 即時通訊軟件

  • 靜態(tài)Web服務(wù)器

  • 遠(yuǎn)程桌面控制軟件

  • 網(wǎng)絡(luò)流量還原軟件

  • Windows內(nèi)核ARK工具

雖然現(xiàn)在看來每一個做的都挺糙的,離實用還有不少距離萝招,但基本功能是完成了蚂斤,而且通過開發(fā)這些東西,不僅對當(dāng)時的我編程能力有了不少的提升槐沼,而且在這個過程中曙蒸,不斷發(fā)現(xiàn)新的技術(shù)名詞,打牢了基礎(chǔ)岗钩,還學(xué)到了不少課本上沒有的東西纽窟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兼吓,隨后出現(xiàn)的幾起案子臂港,更是在濱河造成了極大的恐慌,老刑警劉巖视搏,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件审孽,死亡現(xiàn)場離奇詭異,居然都是意外死亡凶朗,警方通過查閱死者的電腦和手機(jī)瓷胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棚愤,“玉大人搓萧,你說我怎么就攤上這事⊥鹌瑁” “怎么了瘸洛?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長次和。 經(jīng)常有香客問我反肋,道長,這世上最難降的妖魔是什么踏施? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任石蔗,我火速辦了婚禮罕邀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘养距。我一直安慰自己诉探,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布棍厌。 她就那樣靜靜地躺著肾胯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耘纱。 梳的紋絲不亂的頭發(fā)上敬肚,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音束析,去河邊找鬼艳馒。 笑死,一個胖子當(dāng)著我的面吹牛畸陡,可吹牛的內(nèi)容都是我干的鹰溜。 我是一名探鬼主播虽填,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丁恭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斋日?” 一聲冷哼從身側(cè)響起牲览,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恶守,沒想到半個月后第献,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兔港,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年庸毫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衫樊。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡飒赃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出科侈,到底是詐尸還是另有隱情载佳,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布臀栈,位于F島的核電站蔫慧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏权薯。R本人自食惡果不足惜姑躲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一睡扬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧黍析,春花似錦威蕉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侮繁,卻和暖如春虑粥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宪哩。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工娩贷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锁孟。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓彬祖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親品抽。 傳聞我的和親對象是個殘疾皇子储笑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容