今天在在學習過程中遇到一個結構體timeval,不是很了解它用法,現在簡單的總結一下:
struct timeval
{
time_t tv_sec; /*seconds, 秒*/
SUSEconds tv_usec; /*microseconds, 微秒*/
}
其實從結構體的定義不難看出,這個結構體定義了一個時間的表示方法,這個結構體最為重要的作用就是在套接字選項接口setsockopt(int sockfd, int level, int option, const void *val, socklen_t len)控制中的使用當需要控制利用套接字進行收發數據的時間延遲時,傳遞的一個參數!
struct timeval tv = {1, 0};
setsockopt(int sockfd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
setsockopt(int sockfd,SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
這樣就把我們用recieve和send函數進行數據通信時,時間延遲定義為了1s!