版權所有 © 2014 tutorialspoint
connect - 在套接字上啟動連線
#include <sys/types.h> #include <sys/socket.h> int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);
connect() 系統呼叫將檔案描述符 sockfd 引用的套接字連線到 serv_addr 指定的地址。addrlen 引數指定 serv_addr 的大小。serv_addr 中地址的格式由套接字 sockfd 的地址空間確定;有關更多詳細資訊,請參見 socket(2)。
如果套接字 sockfd 的型別為 SOCK_DGRAM,則 serv_addr 是預設情況下資料報傳送到的地址,也是僅接收資料報的地址。如果套接字的型別為 SOCK_STREAM 或 SOCK_SEQPACKET,則此呼叫嘗試連線到繫結到 serv_addr 指定的地址的套接字。
通常,基於連線的協議套接字可能只能成功呼叫 connect() 一次;無連線協議套接字可以使用 connect() 多次來更改其關聯。無連線套接字可以透過將 sockaddr 的 sa_family 成員設定為 AF_UNSPEC 來連線到一個地址來解散關聯。
如果連線或繫結成功,則返回零。如果出錯,則返回 -1,並且 errno 被相應地設定。
以下僅是一般的套接字錯誤。可能還有其他特定於域的錯誤程式碼。
SVr4, 4.4BSD(connect() 函式首次出現在 4.2BSD 中)。
connect() 的第三個引數實際上是一個 int(這就是 4.x BSD 和 libc4 和 libc5 所具有的)。一些 POSIX 混淆導致了現在的 socklen_t,glibc 也使用它。另請參見 accept(2)。
使用帶有 AF_UNSPEC 地址的 connect() 呼叫斷開套接字連線尚未實現。
accept (2)
bind (2)
getsockname (2)
listen (2)
path_resolution (2)
socket (2)
廣告