Socket編程connect()函數

connect()用于建立與指定socket的連接。

成都創(chuàng)新互聯公司是專業(yè)的鎮(zhèn)巴網站建設公司,鎮(zhèn)巴接單;提供成都網站建設、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行鎮(zhèn)巴網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

頭文件: #include <sys/socket.h>

函數原型: int connect(int s, const struct sockaddr * name, int namelen);

參數:

s:標識一個未連接socket

name:指向要連接套接字的sockaddr結構體的指針

namelen:sockaddr結構體的字節(jié)長度

注釋:

本函數用于創(chuàng)建與指定外部端口的連接。s參數指定一個未連接的數據報或流類套接口。如套接口未被捆綁,則系統(tǒng)賦給本地關聯一個唯一的值,且設置套接口為已捆綁。請注意若名字結構中的地址域為全零的話,則connect()將返回WSAEADDRNOTAVAIL錯誤。

對于流類套接口(SOCK_STREAM類型),利用名字來與一個遠程主機建立連接,一旦套接口調用成功返回,它就能收發(fā)數據了。對于數據報類套接口(SOCK_DGRAM類型),則設置成一個缺省的目的地址,并用它來進行后續(xù)的send()與recv()調用。

函數說明

connect()用來將參數sockfd 的socket 連至參數serv_addr 指定的網絡地址. 結構sockaddr請參考bind(). 參數addrlen 為sockaddr 的結構長度.
  返回值:成功則返回0, 失敗返回-1, 錯誤原因存于errno 中.[1] 

返回值:

若無錯誤發(fā)生,則connect()返回0。否則的話,返回SOCKET_ERROR錯誤,應用程序可通過WSAGetLastError()獲取相應錯誤代碼。對非阻塞套接口而言,若返回值為SOCKET_ERROR則應用程序調用WSAGetLsatError()。如果它指出錯誤代碼為WSAEWOULDBLOCK,則您的應用程序可以:

1.用select(),通過檢查套接口是否可寫,來確定連接請求是否完成。

2.如果您的應用程序使用基于消息的WSAAsynSelect()來表示對連接事件的興趣,則當連接操作完成后,您會收到一個FD_CONNECT消息。

錯誤代碼:

WSAENOTINITIALISED:在使用此API之前應首先成功地調用WSAStartup()。

WSAENETDOWN:套接口實現檢測到網絡子系統(tǒng)失效。

WSAEADDRINUSE:所指的地址已在使用中。

WSAEINTR:通過一個WSACancelBlockingCall()來取消一個(阻塞的)調用。

WSAEINPROGRESS:一個阻塞的套接口調用正在運行中。

WSAEADDRNOTAVAIL:在本地機器上找不到所指的地址。

WSAENOTSUPPORT:所指族中地址無法與本套接口一起使用。

WSAECONNREFUSED:連接嘗試被強制拒絕。

WSAEDESTADDREQ:需要目的地址。

WSAEFAULT:namelen參數不正確。

WSAEINVAL:套接口沒有準備好與一地址捆綁。

WSAEISCONN:套接口早已連接。

WSAEMFILE:無多余文件描述字。

WSAENETUNREACH:當前無法從本主機訪問網絡。

WSAENOBUFS:無可用緩沖區(qū)。套接口未被連接。

WSAENOTSOCK:描述字不是一個套接口。

WSAETIMEOUT:超時時間到。

WSAEWOULDBLOCK:套接口設置為非阻塞方式且連接不能立即建立。可用select()調用對套接口寫,因為select()時會進行連接。[1] 

參見

accept(), bind(), getsockname(), socket(), select(), WSAAsyncSelect().

本文題目:Socket編程connect()函數
文章鏈接:http://muchs.cn/article38/ispssp.html

成都網站建設公司_創(chuàng)新互聯,為您提供虛擬主機移動網站建設、全網營銷推廣、品牌網站設計靜態(tài)網站、軟件開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

外貿網站制作