connect函式詳解

2021-06-18 21:59:22 字數 760 閱讀 8183

不得不說,客戶端的connect函式和服務端的accept函式是一對好**,如果客戶端沒有去connect, 那麼服務端的accept會一直在那裡傻傻地痴痴地等待,我們先來看看connect函式的原型吧:

winsock_api_linkage

intwsaapi

connect(

socket s,

const struct sockaddr far * name,

int namelen

);

第乙個引數是客戶端的套接字(表明即將發起連線請求),第二個引數是服務端的套接字所在的「地方」(「地方」是我自定義的專有名詞),第三個引數是該「地方」的大小。

如果請求連線成功,則返回0,否則返回錯誤碼。

下面我們看看服務端如何去發起連線請求:

socket sockclient = socket(af_inet, sock_stream, 0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(8888);

connect(sockclient, (sockaddr*)&addrsrv, sizeof(sockaddr));

當然啦,應該注意處理函式的返回值,上次就被師傅說了一次。

connect函式介紹

include see notes include intconnect int sockfd,const struct sockaddr addr,socklen t addrlen sockdf socket檔案描述符 addr 傳入引數,指定伺服器端位址資訊,含ip位址和埠號 addrlen ...

網路程式設計 connect函式

1 connect描述 定義函式 int connect int sockfd,struct sockaddr serv addr,int addrlen connect函式通常用於客戶端建立tcp連線。返回值 成功則返回0,失敗返回 1,錯誤原因存於errno中。錯誤 ebadf 引數sockfd...

connect 函式阻塞問題

方法一 採用select 在學習嵌入式linux網路程式設計中,很多同學都發現了乙個問題,那就是呼叫connect函式時,如果服務端關閉,客戶 端呼叫connect 函式時,發現阻塞在那裡,而且利用ctrl c訊號去停止客戶端程式時,需要等待乙個較為長的時間才能響應了,這個時間如果大家 細心會發現,...