国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

詳解C語言中accept()函數和shutdown()函數的使用

2020-01-26 14:54:15
字體:
來源:轉載
供稿:網友

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 并未連線

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 寻乌县| 特克斯县| 多伦县| 扎囊县| 潼南县| 桑日县| 临夏市| 宝鸡市| 松阳县| 炉霍县| 常宁市| 永兴县| 五河县| 兴城市| 杨浦区| 皮山县| 郧西县| 长岭县| 平武县| 双牌县| 错那县| 陈巴尔虎旗| 修文县| 楚雄市| 桐庐县| 临邑县| 兰州市| 龙井市| 洪湖市| 平南县| 农安县| 乐东| 德令哈市| 游戏| 永登县| 长寿区| 大兴区| 大名县| 甘南县| 沂源县| 嫩江县|