ioctlsocket 套接字控制函式

2021-04-20 06:26:10 字數 1196 閱讀 9040

簡述:

控制套介面的模式。

#include

int pascal far ioctlsocket( socket s, long cmd, u_long far* argp);

s:乙個標識套介面的描述字。

cmd:對套介面s的操作命令。

argp:指向cmd命令所帶引數的指標。

注釋:fionbio:允許或禁止套介面s的非阻塞模式。argp指向乙個無符號長整型。如允許非阻塞模式則非零,如禁止非阻塞模式則為零。當建立乙個套介面時,它就處於阻塞模式(也就是說非阻塞模式被禁止)。這與bsd套介面是一致的。wsaasynselect()函式將套介面自動設定為非阻塞模式。如果已對乙個套介面進行了wsaasynselect() 操作,則任何用ioctlsocket()來把套介面重新設定成阻塞模式的試圖將以wsaeinval失敗。為了把套介面重新設定成阻塞模式,應用程式必須首先用wsaasynselect()呼叫(ievent引數置為0)來禁至wsaasynselect()。

fionread:確定套介面s自動讀入的資料量。argp指向乙個無符號長整型,其中存有ioctlsocket()的返回值。如果s是socket_stream型別,則fionread返回在一次recv()中所接收的所有資料量。這通常與套介面中排隊的資料總量相同。如果s是sock_dgram 型,則fionread返回套介面上排隊的第乙個資料報大小。

相容性:

本函式為berkeley套介面函式ioctl()的乙個子集。其中沒有與fioasync等價的命令,siocatmark是套介面層次支援的唯一命令。

返回值:

成功後,ioctlsocket()返回0。否則的話,返回socket_error錯誤,應用程式可通過wsagetlasterror()獲取相應錯誤**。

錯誤**:

wsanotinitialised:在使用此api之前應首先成功地呼叫wsastartup()。

wsaenetdown:windows套介面實現檢測到網路子系統失效。

wsaeinval:cmd為非法命令,或者argp所指引數不適用於該cmd命令,或者該命令

不適用於此種型別的套介面。

wsaeinprogress:乙個阻塞的windows套介面呼叫正在執行中。

wsaenotsock:描述字不是乙個套介面。

參見:socket(), setsockopt(), getsockopt(), wsaasyncselect().

監聽套接字 連線套接字

摘要 對於伺服器程式設計中最重要的一步等待並接受客戶的連線,那麼這一步在程式設計中如何完成,accept函式就是完成這一步的。它從核心中取出已經建立的客戶連線,然後把這個已經建立的連線返回給使用者程式,此時使用者程式就可以與自己的客戶進行點到點的通訊了。accept函式等待並接受客戶請求 inclu...

python套接字 python套接字基本使用

socket socket通常也稱作 套接字 用於描述ip位址和埠,應用程式通常通過 套接字 向網路發出請求或者應答網路請求,可以認為是一種計算機網路的資料結構,介面。它是網路程式設計的基礎 套接字還分為面向連線的和無連線的 第一種是指tcp型別套接字,在通訊前需要建立連線,這種連線是較為可靠的,使...

python套接字程式設計 python套接字程式設計

服務端 usr bin python coding utf 8 import socket s socket.socket host socket.gethostname port 12345 s.bind host,port s.listen 5 while true c,addr s.accep...