C語言設定和取得socket狀態的相關函式用法

2022-10-04 03:45:07 字數 1578 閱讀 2117

c語言setsockopt()函式:設定socket狀態

標頭檔案:

#include #include

定義函式:

int setsockopt(int s, int level, int optname, const void * optval, ,socklen_toptlen);

函式說明:setsockopt()用來設定引數s 所指定的socket 狀態. 引數level 代表欲設定的網路層, 一般設成sol_socket 以訪問socket 層. 引數optname 代表欲設定的選項, 有下列幾種數值:

so_debug 開啟或關閉排錯模式

so_reuseaddr 允許在bind ()過程中本地位址可重複使用

so_type 返回socket 形態.

so_error 返回socket 已發生的錯誤原因

so_dontroute 送出的資料報不要利用路由裝置來傳輸.

so_broadcast 使用廣播方式傳送

so_sndbuf 設定送出的暫存區大小

so_rcvbuf 設定接收的暫存區大小

so_keepalive 定期確定連線是否已終止.

so_oobinline 當接收到oob 資料時會馬上送至標準輸入裝置

so_linger 確保資料安全且可靠的傳送出去.

引數 optval 代表欲設定的值, 引數optlen 則為optval 的長度.

返回值:成功則返回0, 若有錯誤則返回-1, 錯誤原因存於errno.

rkkks附加說明:

1、ebadf 引數s 並非合法的socket 處理**

2、enotsock 引數s 為一檔案描述詞, 非socket

3、enoprotoopt 引數optname 指定的選項不正確.

4、efault 引數optval 指標指向無法訪問的記憶體空間.

c語言getsockopt()函式:取得socket 狀態

標頭檔案:

#include #include

定義函式:

int getsockopt(int s, int level, int optname, void* optval, socklen_t* optlen);

函式說明:getsockopt()會將引數s 所指定的socket 狀態返回. 引數optname 代表欲取得何種選項狀態, 而引數optval 則指向欲儲存結果的記憶體位址, 引數optlen 則為該空間的大小. 引數level、optname 請參考setsockopt().

返回值:成功則返回0, 若有錯誤則返回-1, 錯誤原因存於errno

錯誤**:

1、ebadf 引數s 並非合法的socket 處理**

2、enotsock 引數s 為一檔案描述詞, 非socket

3、enoprotoopt 引數optname 指定的選項不正確

4、efault 引數optval 指標指向無法訪問的記憶體空間

範例#include

#include

main()

執行:optval = 1 //soc程式設計客棧k_stream 的定義正是此值

本文位址:

執行緒名字的取得和設定

public final string getname 取得執行緒的方法 public final void setname string name 設定執行緒的方法 由於執行緒執行的不確定性,因此,取得執行緒的名字是取得當前執行緒的名字,取的當前執行緒的方法是 public static thre...

取得和設定執行緒的名稱

package getname import j a.util.missingformatargumentexception 寫乙個demo 設定執行緒名稱和獲得當前執行緒的名稱 thread 的方法 string getname 返回該執行緒的名稱。static thread currentthr...

如何取得Android手機的當前語言設定

1.首先,如果要程式自動適應系統語言進行轉變,可以在res下新增相應的語言資料夾 如 新增中文,則資料夾命名為values zh rcn,如果不清楚需要的名字可以到 e android sdk windows platforms android 8 data res,如這樣的資料夾下尋找。這樣就可以...