電商專業(yè)學(xué)習(xí)嵌入式軟件開發(fā)第五十四天

  • 網(wǎng)絡(luò)編程第五天

今天是網(wǎng)絡(luò)編程最后一天,老師今天主要給我們講了gethostbyname和UDP編程,最后還給我們推薦了一個抓包工具——wrieshark翠忠,只是看老師演示了一遍,而且下載的版本和老師的不同,版塊都變了辆脸。以后有時間還需要學(xué)習(xí)一下怎么使用這個軟件,老師說要學(xué)會使用這個軟件看數(shù)據(jù)循帐。明天開始就要學(xué)習(xí)C++了,但是我的第一個項目仍然沒有完成,不能在老師給的期限內(nèi)完成就要留到下個班級,我也打算留到下個班級,但是是在聽完所有課程之后,否則到時聽后面的課程還是新知識,這樣消化會比較慢,如果在已經(jīng)有一定概念和基礎(chǔ)的情況下再次去聽嘎虐一定會比聽第一次效果好的碧查。

一、gethostbyname
域名------>ip地址
原型:struct hostent *gethostbyname(const char *name);

正常調(diào)用的前提
1.聯(lián)網(wǎng)
2.dns配置(dns服務(wù)器的ip地址)

基本工作原理:
調(diào)用該函數(shù)的程序被當(dāng)作客戶端與dns服務(wù)器進行網(wǎng)絡(luò)通信, 過程大致如下:
1.鏈接服務(wù)器
2.給dns服務(wù)器發(fā)送域名
3.服務(wù)器返回對應(yīng)的ip地址
4.斷開鏈接,函數(shù)返回

注意:該函數(shù)返回的是數(shù)據(jù)區(qū)空間的首地址,因此不要對其進行free

T *func(...)
{
    T *p = NULL;
    T t;
    p = &t;
    .....
    return p;//返回的是該函數(shù)普通局部變量所在空間的地址版确,這樣的操作是找死
}

T *func(...)
{
    T *p = NULL;
    p = (T *)malloc(...);
    .....
    return p;//返回的是堆區(qū)一塊內(nèi)存空間的首地址梢灭,請記得如果該空間不再被使用請及時釋放
}

//T t;
T *func(...)
{
    T *p = NULL;
    static T t;
    p = &t;
    .....
    return p;//返回的是數(shù)據(jù)區(qū)一個變量所占空間的首地址
}

T *func(T * pa,...)
{
    T *p = pa;
    .....
    p++;
    .....
    return p;//返回的是數(shù)據(jù)區(qū)一個變量所占空間的首地址
}

二、心跳包
作用:維持長連接
實現(xiàn):客戶端與服務(wù)器的通信協(xié)議里要支持該PDU

三幕侠、UDP編程
1.面向非鏈接
2.不可靠的傳輸
3.實現(xiàn)組播和廣播

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                        struct sockaddr *src_addr, socklen_t *addrlen);
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                      const struct sockaddr *dest_addr, socklen_t addrlen);
UDP客戶端(非定向形式)
fd = socket(AF_INET,SOCK_DGRAM,0);
sendto()/recvfrom();
close(fd);

UDP客戶端(定向形式)
fd = socket(AF_INET,SOCK_DGRAM,0);
...給servaddr賦值
connect(fdd,(struct)&servaddr,sizeof(servaddr));
send()/recv()/read/write;
close(fd);

UDP服務(wù)端
fd = socket(AF_INET,SOCK_DGRAM,0);
bind();
sendto()/recvfrom();
close(fd);

如果客戶端想與服務(wù)器定向傳輸,在發(fā)送和接受數(shù)據(jù)前,可以先調(diào)用connect;
此時的connect函數(shù)并不會與服務(wù)器建立鏈接,只是將遠(yuǎn)端的地址和自己的描述符進行了綁定;
因此客戶端發(fā)送和接受數(shù)據(jù)不可以再用sendto和recvfrom,只能使用read/write或者send/recv.

四帝美、抓包工具(wireshark)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晤硕,隨后出現(xiàn)的幾起案子悼潭,更是在濱河造成了極大的恐慌庇忌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舰褪,死亡現(xiàn)場離奇詭異皆疹,居然都是意外死亡,警方通過查閱死者的電腦和手機占拍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門略就,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刷喜,你說我怎么就攤上這事残制×⒃遥” “怎么了掖疮?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長颗祝。 經(jīng)常有香客問我浊闪,道長,這世上最難降的妖魔是什么螺戳? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任搁宾,我火速辦了婚禮,結(jié)果婚禮上倔幼,老公的妹妹穿的比我還像新娘盖腿。我一直安慰自己,他們只是感情好损同,可當(dāng)我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布翩腐。 她就那樣靜靜地躺著,像睡著了一般膏燃。 火紅的嫁衣襯著肌膚如雪茂卦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天组哩,我揣著相機與錄音等龙,去河邊找鬼。 笑死伶贰,一個胖子當(dāng)著我的面吹牛蛛砰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播黍衙,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼暴备,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了们豌?” 一聲冷哼從身側(cè)響起涯捻,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤浅妆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后障癌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凌外,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年涛浙,在試婚紗的時候發(fā)現(xiàn)自己被綠了康辑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡轿亮,死狀恐怖疮薇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情我注,我是刑警寧澤按咒,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站但骨,受9級特大地震影響励七,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奔缠,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一掠抬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧校哎,春花似錦两波、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阳准,卻和暖如春氛堕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背野蝇。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工讼稚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绕沈。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓锐想,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乍狐。 傳聞我的和親對象是個殘疾皇子赠摇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,666評論 2 350

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