詳解C說話中accept()函數和shutdown()函數的應用。本站提示廣大學習愛好者:(詳解C說話中accept()函數和shutdown()函數的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C說話中accept()函數和shutdown()函數的應用正文
C說話accept()函數:接收socket連線
頭文件:
#include <sys/types.h> #include <sys/socket.h>
界說函數:
int accept(int s, struct sockaddr * addr, int * addrlen);
函數解釋:accept()用來接收參數s 的socket 連線. 參數s 的socket 必須先經bind()、listen()函數處置過, 當有連線出去時accept()會前往一個新的socket 處置代碼, 往後的數據傳送與讀取就是經過新的socket處置, 而本來參數s 的socket 能持續應用accept()來接收新的連線請求. 連線勝利時, 參數addr 所指的構造會被體系填入長途主機的地址數據, 參數addrlen 為scokaddr 的構造長度. 關於機構sockaddr 的界說請參考bind().
前往值:勝利則前往新的socket 處置代碼, 掉敗前往-1, 毛病緣由存於errno 中.
毛病代碼:
1、EBADF 參數s 非正當socket 處置代碼.
2、EFAULT 參數addr 指針指向沒法存取的內存空間.
3、ENOTSOCK 參數s 為一文件描寫詞, 非socket.
4、EOPNOTSUPP 指定的socket 並不是SOCK_STREAM.
5、EPERM 防火牆謝絕此連線.
6、ENOBUFS 體系的緩沖內存缺乏.
7、ENOMEM 焦點內存缺乏.
C說話shutdown()函數:終止socket通訊
頭文件:
#include <sys/socket.h>
界說函數:
int shutdown(int s, int how);
函數解釋:shutdown()用來終止參數s 所指定的socket 連線. 參數s 是連線中的socket 處置代碼, 參數how有以下幾種情形:
前往值:勝利則前往0, 掉敗前往-1, 毛病緣由存於errno.
毛病代碼:
1、EBADF 參數s 不是有用的socket 處置代碼
2、ENOTSOCK 參數s 為一文件描寫詞, 非socket
3、ENOTCONN 參數s 指定的socket 並未連線