不得不說,客戶端的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訊號去停止客戶端程式時,需要等待乙個較為長的時間才能響應了,這個時間如果大家 細心會發現,...