首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Linux 網路程式設計:高級 Socket 選項詳解

     編輯:關於C語言

Socket 選項與協議層

層級選項說明
SOL_SOCKET
(通用 Socket 選項)
SO_KEEPALIVE允許 TCP 連線保活檢測
SO_REUSEADDR允許本地地址重用
SO_LINGER允許 TCP 連線保持一段時間直到資料發送完畢
SO_SNDBUFSocket 發送緩衝區大小
SO_RCVBUFSocket 接收緩衝區大小
SO_TYPE取得 Socket 類型
SO_ERROR取得 Socket 錯誤並清除
......
SOL_TCP
(TCP 協議層選項)
TCP_NODELAY禁止 TCP Nagle 演算法
TCP_MAXSEGTCP 最大分段值
......

SO_KEEPALIVE 保活機制

伺服器常處於阻塞狀態等待客戶端請求。若客戶端因關機、待機斷開連線,伺服器無法即時得知,導致為已斷開連線保持資源。保活選項可檢測此情況。

#define TRUE 1
#define FALSE 0
setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &so_keepalive, sizeof(so_keepalive));

SO_REUSEADDR 地址重用

允許本地地址端口快速重用,避免 TIME_WAIT 狀態導致綁定失敗。

#define TRUE 1
#define FALSE 0
setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &so_reuseaddr, sizeof(so_reuseaddr));
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved