一、sendto函數
功能:基於UDP發送數據報,返回實際發送的數據長度,出錯時返回-1
參數說明:
sockfd:套接字描述符
data:指向要發送數據的指針
data_len:數據長度
flags:一直爲0
remaddr:遠端地址:IP地址和端口號
remaddr_len :地址長度
舉例:sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&address, sizeof(address));
二、send函數
功能:
在TCP連接上發送數據,返回成功傳送數據的長度,出錯時返回-1。
send會將外發數據複製到OS內核中,也可以使用send發送面向連接的UDP報文。
參數說明:
sockfd:套接字描述符
data:指向要發送數據的指針
data_len:數據長度
flags:一直爲0
舉例(p50):send(s,req,strlen(req),0);
三、recvfrom函數
功能:從UDP接收數據,返回實際接收的字節數,失敗時返回-1
參數說明:
Sockfd:套接字描述符
buf:指向內存塊的指針
buf_len:內存塊大小,以字節爲單位
flags:一般爲0
from:遠端的地址,IP地址和端口號
fromlen:遠端地址長度
舉例:recvfrom(sockfd,buf,8192,0, ,(struct sockaddr *)&address, sizeof(address));
四、recv函數
功能:
從TCP接收數據,返回實際接收的數據長度,出錯時返回-1。
服務器使用其接收客戶請求,客戶使用它接受服務器的應答。如果沒有數據,將阻塞,如果收到的數據大於緩存的大小,多餘的數據將丟棄。也可以使用recv接收面向連接的UDP的報文
參數說明:
Sockfd:套接字描述符
Buf:指向內存塊的指針
Buf_len:內存塊大小,以字節爲單位
flags:一般爲0
舉例:recv(sockfd,buf,8192,0)
五、close函數
功能:
撤銷套接字.
如果只有一個進程使用,立即終止連接並撤銷該套接字,如果多個進程共享該套接字,將引用數減一,如果引用數降到零,則撤銷它。
參數說明:
Sockfd:套接字描述符
舉例:close(socket_descriptor)
六、其它套接字函數
gethostname 獲得主機名
getpeername 獲得與套接口相連的遠程協議地址
getsockname 獲得套接口本地協議地址
gethostbyname 根據主機名取得主機信息
gethostbyaddr 根據主機地址取得主機信息
getprotobyname 根據協議名取得主機協議信息
getprotobynumber 根據協議號取得主機協議信息
getservbyname 根據服務名取得相關服務信息
getservbyport 根據端口號取得相關服務信息
getsockopt/setsockopt 獲取/設置一個套接口選項
ioctlsocket 設置套接口的工作方式
七、UDP調用序列
八、TCP調用序列