鍍金池/ 問(wèn)答/Java  C++  Linux/ 網(wǎng)絡(luò)編程中的socket()和accept()兩個(gè)函數(shù)返回的都是套接字,那么它們

網(wǎng)絡(luò)編程中的socket()和accept()兩個(gè)函數(shù)返回的都是套接字,那么它們具體的區(qū)別是什么呢?

以前只是簡(jiǎn)單的知道它們是有區(qū)別的,但是具體不是很清楚它們有什么區(qū)別。希望前輩們可以解答一下疑惑。

回答
編輯回答
維他命

socket()是創(chuàng)建一個(gè)socket描述符,用于后續(xù)的bind和accpet調(diào)用(或者connect調(diào)用)。對(duì)于服務(wù)器程序,accept傳入的參數(shù)是socket()創(chuàng)建出來(lái)的,返回的描述符表示一個(gè)可以跟對(duì)端客戶端通信(read,write)用的描述符。accept每次返回正確的話,都會(huì)得到一個(gè)新的描述符。

2018年2月26日 06:21
編輯回答
疚幼

socket返回的是套接字對(duì)象,用于監(jiān)聽(tīng)或連接。而accept返回的是一個(gè)元組,一個(gè)元素是套接字對(duì)象,用于數(shù)據(jù)收發(fā),另一個(gè)元素是地址元組。

2018年5月16日 23:51