[問題] 請問和socket相關的語法

看板C_and_CPP作者 (嘿嘿)時間12年前 (2013/05/19 14:38), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
開發平台為Linux, 我想請問一下有關connect()內的參數意義, connect(sockfd, (struct sockaddr *)&serv_addr,len); 我知道這個function的目的為將sockfd的socket連至參數serv_addr指定的網路位址。 但我想問的是, 為何不是寫成&serv_addr就好呢? 不好意思,這邊的觀念很弱, 希望大家可以幫我解惑,謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.129.63 ※ 編輯: rmp4aup6 來自: 60.250.129.63 (05/19 14:45) ※ 編輯: rmp4aup6 來自: 60.250.129.63 (05/19 14:46)

05/19 20:35, , 1F
常見把serv_addr宣告成sockaddr_in
05/19 20:35, 1F

05/19 20:36, , 2F
這只是轉型成connect的prototype要求的型別
05/19 20:36, 2F

05/26 02:07, , 3F
你可以想成 sockaddr 是 sockaddr_in 的 parent
05/26 02:07, 3F

05/26 02:08, , 4F
這是一種類似 polymorphism 的手法
05/26 02:08, 4F

05/26 02:08, , 5F
sockaddr 是共通界面
05/26 02:08, 5F
文章代碼(AID): #1Hc7DZ4J (C_and_CPP)