學習歷程 25歲零基礎學程式設計 4

2021-06-16 03:11:25 字數 1675 閱讀 4959

繼續更新部落格。

這段時間學的有些慢啊……

但是不管怎麼樣,還是有長進的。

今天照著教程,把那個應用非同步套接字聊天的程式,自己例項了一下。

就是應用wsaasynselect()函式的那個。

弄完以後就出問題了,自設messagebox提示

「註冊網路事件失敗!

」,後面的功能實現不了了(後面我敘述**,沒學過孫鑫vc++的估計看著亂)。

不是編譯出的錯誤,所以不知道哪有問題?

因為**裡messagebox跳出的條件是wsaasynselect()==socket_error,所以我認為找了半天也沒找到**錯了,超級鬱悶。要知道一處錯誤還找不到是很鬱悶的(我是聽沒耐心的那種人),就像扔那不學了,玩遊戲去。

but!這樣是不行的,這麼小的程式都找不出錯誤,那也太廢了吧。

最後找到原因,原來是initsock()的呼叫函式放錯了,我放在dlg類的建構函式了,應該放在oninitdlg()函式裡,長記性了。

再執行,試著傳送資訊,又定住了。

「我靠,vc6就是不穩定啊

」哪那麼多臭毛病?

唉,再找問題,原來是乙個wsarecvfrom()的函式flag引數沒有初始值。讓flag=0就行了。

————————————————————————

分割線————————————————————————————————

//老規矩,把**默寫一遍,看看自己的記憶力如何?哈哈,默寫!

//這是乙個非同步套接字實現的聊天程式(還是不清楚

「非同步套接字

」的原理,前一課的多執行緒實現迴圈接收資料,我還稍微有點懂了)

//把控制項資源都弄好

//在工程link裡新增ws2_32.lib,在afxstd.h新增

#include

//在dlg的類裡建立m_sock成員變數和initsock()函式初始化套接字

cchatdlg::initsock()

//孫鑫老師喜歡將邏輯比較的值放在前面,據說還是好習慣 }

//然後把initsock的呼叫放在oninitdlg()裡而不是建構函式

//剛才的那個um_sock訊息和其訊息響應函式onsock定義一下,現在自定義訊息響應函式也比較熟啦!

//但要注意的是,訊息響應函式onsock(wparm,lparam)有兩個引數,而且發生訊息事件:

wparam的地位標識socket,lparam低位標識事件,lparam高位包含error code,我都不知道發生了事件,這些資料怎麼傳到就這兩個引數裡了,算了先記住吧。

//那麼定義onsock函式

cchatdlg::onsock(wparam wparam,lparam lparam)

} //然後呢……

//哦,雙擊按鈕控制項建立函式,完成傳送**

cchatdlg::onbuttonsend()

————————————————————————

分割線————————————————————————————————

oh~~my~~god!我居然全都默寫出來了,而且我感覺都對了,至少可以打85分,哈哈!

哦,對了,前一段時間閒的無聊重新看了遍《棋魂》,看著很爽!

重新下了tom圍棋,去上面對弈,雖然我水平超菜,不過國學經典還是值得品味!

零基礎學程式設計系列一

每個人都有夢想,你是否也曾羨慕過那些月薪5萬的西二旗程式猿們?可是每個人條件不同,理想很豐滿,現實很骨感。有些非計算機專業的同學學習程式設計還是有些吃力。其實要想短時間內學會一門程式語言也不是沒有可能。本系列教程就是想給零基礎的同學帶入到程式設計這個神奇的世界中,凡事只要入門了後面學起來就會快起來。...

30歲零基礎自學程式設計,先學哪種語言最好?

說說我自己的經歷。211大學,光學工程研究生畢業,和程式猿完全不搭邊。畢業後進了成都某國字頭研究所,在行業裡摸爬滾打了四年,2018年機緣巧合在家養病,開始了程式設計自學。選擇程式設計的原因很簡單 成本低,一台電腦足以 見效快,沒有實體行業的週期流程,馬上就能看到效果。於是乎就下定決心要學pytho...

30歲零基礎自學程式設計,先學哪種語言最好?

說說我自己的經歷。211大學,光學工程研究生畢業,和程式猿完全不搭邊。畢業後進了成都某國字頭研究所,在行業裡摸爬滾打了四年,2018年機緣巧合在家養病,開始了程式設計自學。選擇程式設計的原因很簡單 成本低,一台電腦足以 見效快,沒有實體行業的週期流程,馬上就能看到效果。於是乎就下定決心要學pytho...