網路超時檢測

2022-01-23 20:09:28 字數 1077 閱讀 9517

getsockopt

setsockopt

網路超時檢測:

必要性:避免程序在沒有資料時無限制的阻塞

當設定的時間到,程序從原操作返回繼續執行

3種方式可以:

1.設定socket的屬性

so_rcvtimeo 接收超時

so_sndtimeo 傳送超時

struct timeval tv;

tv.tv_sec = 5;

tv.tv_usec = 0;

setsockopt(sockfd, sol_socket,so_rcvtimeo,&tv,sizeof(tv));

5秒接收超時檢測。

2.select也可以超時檢測

3.設定定時器(timer),捕捉sigalrm訊號

#include

#include

void handler(int sig)

int main()

alarm(0);

printf("buf = %s\n", buf);

}getsockopt

setsockopt

網路超時檢測:

必要性:避免程序在沒有資料時無限制的阻塞

當設定的時間到,程序從原操作返回繼續執行

3種方式可以:

1.設定socket的屬性

so_rcvtimeo 接收超時

so_sndtimeo 傳送超時

struct timeval tv;

tv.tv_sec = 5;

tv.tv_usec = 0;

setsockopt(sockfd, sol_socket,so_rcvtimeo,&tv,sizeof(tv));

5秒接收超時檢測。

2.select也可以超時檢測

3.設定定時器(timer),捕捉sigalrm訊號

#include

#include

void handler(int sig)

int main()

alarm(0);

printf("buf = %s\n", buf);

}

網路超時檢測 setsockopt()

setsockopt 函式 1 使用setsockopt 實現超時檢測時相比其他兩種方式的特點是 只要呼叫setsockopt函式一次,函式下發所有阻塞函式均可使用,且永久有效。阻塞函式在到達設定的時間時,會被系統認定為錯誤,使阻塞函式返回值小於0 include int setsockopt in...

網路程式設計中的超時檢測

華清遠見嵌入式學院 講師。一 設定套接字接收超時 setsockopt可以設定套接字的屬性,其中包括接收超時時間。參考 如下 struct timeval tv 描述時間的結構體變數 tv.tv sec 8 tv.tv usec 0 setsockopt sockfd,sol socket,so r...

網路程式設計中的超時檢測

華清遠見嵌入式學院 講師。一 設定套接字接收超時 setsockopt可以設定套接字的屬性,其中包括接收超時時間。參考 如下 struct timeval tv 描述時間的結構體變數 tv.tv sec 8 tv.tv usec 0 setsockopt sockfd,sol socket,so r...