第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

TCP/IP 三次握手后該怎么去理解read和write函數(shù)中的參數(shù)?

TCP/IP 三次握手后該怎么去理解read和write函數(shù)中的參數(shù)?

慕斯王 2019-03-18 22:13:52
初學(xué)網(wǎng)絡(luò)編程,自己寫服務(wù)端和客戶端簡單的socket通信時(shí),遇到了一個(gè)問題比較迷惑:在服務(wù)端編程時(shí),會(huì)創(chuàng)建兩個(gè)文件描述符sfd和cfd,其中sfd用來綁定服務(wù)端的地址信息,后面調(diào)用accept的時(shí)候,使用的實(shí)參是sfd,返回給了cfd,最終用read和write函數(shù)的時(shí)候,都是通過cfd來進(jìn)行讀寫的,(個(gè)人感覺這里的cfd是否就可以理解是保存了客戶端的地址信息,相當(dāng)于客戶端的套接字?)也就是說這里讀寫時(shí)使用的是對方的套接字進(jìn)行讀寫的?然后到了客戶端編程時(shí),只創(chuàng)建了一個(gè)文件描述符fd,然后后面使用connect函數(shù)時(shí),實(shí)參使用的也是這個(gè)fd,而后面使用read和write時(shí),也是通過fd來進(jìn)行讀寫的。但是我從一些資料上看到,客戶端如果沒有給套接字使用bind,操作系統(tǒng)會(huì)自動(dòng)分配地址信息綁定到這個(gè)套接字上,那就說明客戶端中的fd依然是客戶端自身的套接字?這樣我就覺得很奇怪了:為什么在服務(wù)端read和write是用的對方的套接字,而客戶端read和write時(shí)是用的自己的套接字呢?既然都用的是相同的函數(shù),那這樣不就矛盾了嗎?請問我是哪里理解錯(cuò)了呢?(另外,個(gè)人對于套接字的理解是:套接字實(shí)際上就是將一個(gè)進(jìn)程的地址信息(包括ip、端口等)具體化,來使得進(jìn)程成為一個(gè)可連接對象,不知道這樣的理解是否有誤?) 十分感謝?。?!
查看完整描述

2 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

  1. 描述符都是本地的概念,它的值只是內(nèi)核文件系統(tǒng)中對socket/sock數(shù)據(jù)結(jié)構(gòu)的一個(gè)"別稱"而已。創(chuàng)建socket時(shí),內(nèi)核創(chuàng)建socket/sock數(shù)據(jù)結(jié)構(gòu),并返回給你一個(gè)fd。以后你用這個(gè)fd進(jìn)行 send或者recv,內(nèi)核才能找到時(shí)哪個(gè)socket。


(個(gè)人感覺這里的cfd是否就可以理解是保存了客戶端的地址信息,相當(dāng)于客戶端的套接字?)也就是說這里讀寫時(shí)使用的是對方的套接字進(jìn)行讀寫的?

cfd是屬于Server的套接字描述符,只是它對應(yīng)的套接字保存了通信雙方的信息,只能說是連接到client的套接字

客戶端如果沒有給套接字使用bind,操作系統(tǒng)會(huì)自動(dòng)分配地址信息綁定到這個(gè)套接字上,那就說明客戶端中的fd依然是客戶端自身的套接字?

Bind 就是手動(dòng)指定為一個(gè)套接字指定本端地址信息(比如IP和port)。一般Clinet不關(guān)心自己使用的端口號(hào),所以一般Clinet不用Bind,實(shí)在要Bind也沒啥問題,只要不要和已有的沖突就行。

另外,關(guān)于

在服務(wù)端編程時(shí),會(huì)創(chuàng)建兩個(gè)文件描述符sfd和cfd,其中sfd用來綁定服務(wù)端的地址信息,后面調(diào)用accept的時(shí)候,使用的實(shí)參是sfd,返回給了cfd

sfd是監(jiān)聽(listen)套接字,accept返回的cfd是子連接,本端信息繼承sfd,對端信息來源于對端的SYN報(bào)文


查看完整回答
反對 回復(fù) 2019-03-18
  • 2 回答
  • 0 關(guān)注
  • 874 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)