網路通訊 select 用法

2022-03-13 04:10:55 字數 1520 閱讀 9389

select()用法

標頭檔案

#include #include 

#include

定義函式

select()用來等待檔案描述詞狀態的改變。

int

select(int n, fd_set * readfds, fd_set * writefds, fd_set * exceptfds, struct timeval * timeout);

n:代表最大的檔案描述詞加1;

readfds、writefds 和exceptfds:稱為描述片語,是用來回傳該描述詞的讀,寫或例外的狀況。

底下的巨集提供了處理這三種描述片語的方式:

fd_clr(inr fd,fd_set* set);    //

用來清除描述片語set中相關fd 的位

fd_isset(int fd,fd_set *set); //

用來測試描述片語set中相關fd 的位是否為真

fd_set(int fd,fd_set*set); //

用來設定描述片語set中相關fd的位

fd_zero(fd_set *set); //

用來清除描述片語set的全部位

timeout為結構timeval,用來設定select()的等待時間,其結構定義如下:

struct

timeval

;

返回值

如果引數timeout設為null,則表示select沒有timeout。

1. 執行成功則返回檔案描述詞狀態已改變的個數;

2. 如果返回0代表在描述詞狀態改變前已超過timeout時間;

3. 當有錯誤發生時則返回-1,錯誤原因存於errno,此時引數readfds,writefds,exceptfds和timeout的值變成不可**。

ebadf    //

檔案描述詞為無效的或該檔案已關閉

eintr //

此呼叫被訊號所中斷

einval //

引數n 為負值。

enomem //

核心記憶體不足

select使用

例子:

#include #include 

#include

#include

#include

#include

#include

intmain()

printf(

"hehethe input is %c\n

",c );

if( '

q' == c ) //

輸入q結束}}

}

select網路通訊02

client02 define win32 lean and mean define crt secure no warnings include include include include using namespace std pragma comment lib,ws2 32.lib 動態...

C 網路通訊

c 網路通訊 一 伺服器端程式 10.17 1.建立伺服器端socket 1 使用socket類 建立伺服器socket物件 socket objs new socket 引數 使用ipendpoint類設定伺服器ip位址和埠號 或使用dns類 ipaddress serip ipaddress.p...

Winsock網路通訊

winsock網路通訊 這裡我希望和大家 一下winsock網上通訊的程式,由於網際網路的普及,越來越多的程式具有了在網上與其他程式通訊的功能.其實所有這些功能都建立在winsock介面之上,應用程式執行大多數網路通訊的基本物件稱為套介面或軟插口 socket 使用mfc winsocket類新增網...