函數功能:
TCP服務器依次調用socket(),bind(),listen()之后,就會監聽指定的socket地址;TCP客戶端在依次調用socket(),connect()之后就會向TCP服務器發送一個連接請求。TCP服務器在監聽到這個請求之后,就會調用accept函數取接收請求,這樣連接就建立好了。之后就可以開始網絡I/O操作了,即類同於普通文件的讀寫I/O操作。
函數原型:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
sockfd:服務器的socket描述符
addr:指向struct sockaddr的指針,用於返回客戶端的協議地址
addr:返回協議地址的長度
返回值:
返回的是已連接的socket描述符。一個服務器通常只創建一個監聽socket描述符,它在該服務器的生命周期一直存在。內核為每個由服務器進程接受的客戶端連接創建了一個已連接socket描述符,當服務器完成了對某個客戶的服務,相應的已連接socket描述符就被關閉。
