程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 詳解C說話中accept()函數和shutdown()函數的應用

詳解C說話中accept()函數和shutdown()函數的應用

編輯:關於C++

詳解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有以下幾種情形:

  •    how=0 終止讀取操作.
  •    how=1 終止傳送操作
  •    how=2 終止讀取及傳送操作

前往值:勝利則前往0, 掉敗前往-1, 毛病緣由存於errno.

毛病代碼:
1、EBADF 參數s 不是有用的socket 處置代碼
2、ENOTSOCK 參數s 為一文件描寫詞, 非socket
3、ENOTCONN 參數s 指定的socket 並未連線

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved